c - 搜索 -lMY_LIB 时跳过不兼容的 lib_share.so 找不到 -lMY_LIB

标签 c makefile static-libraries symlink dynamic-library

我正在尝试从退出 MY_LIB.so 文件构建 lib_share.so 文件。 MY_LIB.so 文件位于 my_path 中。

g++ -shared -o lib_share.so -L/my_path -lMYLIB 

当我运行时,它给我错误作为休闲

bin/ld: skipping incompatible /home/folder/lMY_LIB.so 

搜索 -lMY_LIB 时

/home/../../bin/ld: cannot find -lMY_LIB

P.S.:MY_LIB.so是软链接(soft link)

当我转到 main .so 文件并在 main .so 中搜索 MY_LIB 时,它的给出如下。

objdump -p MY_LIB.so.1.0.1 | grep 
MY_LIB.so.1.0.1:     file format **elf32-big**
  SONAME               MY_LIB.so.1

库的文件格式是32位,我使用64位机器编译 (g++ -shared -o lib_share.so -L/my_path -lMYLIB)

任何人都可以帮助理解为什么我无法编译(g++ -shared -o lib_share.so -L/my_path -lMYLIB),即使 MY_LIB 物理存在于它的目录中

根据我的谷歌搜索,这是因为该库是 32 位的,而我使用 64 位机器来编译该程序。

任何人都可以给出任何其他可能的错误以及如何解决此错误。

最佳答案

尝试使用g++-m32标志来以32位编译整个程序。

关于c - 搜索 -lMY_LIB 时跳过不兼容的 lib_share.so 找不到 -lMY_LIB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19592765/

相关文章:

c++ - 当取消请求排队时,pthread_cancel() 将如何响应?

C:链表的合并排序,合并子数组在排序函数中未正确捕获

CCS C编译器,命令行指令

时间:2019-03-17 标签:c++: TerminateProcess (procHandle,0)

c++ - 链接器找不到 .so 文件

ios - Cocoa 静态库 - 一些第三方源文件无法正常工作

c - C 中的 Makefile 以获取可执行文件

windows - 用于在 Linux 和 Windows 中工作的命令行参数

c++ - 使用多个库时,在 CMakeList 中配置 target_link_libraries 的正确方法是什么?获取无法指定链接库错误

objective-c - 如何解决 'unrecognized selector sent to instance' ?