/usr/bin/ld:找不到-lRTU_模块Linux/共享库C代码
我在编译以下代码行时遇到问题:/usr/bin/ld:找不到-lRTU_模块Linux/共享库C代码,c,linux,shared-libraries,ld,.so,C,Linux,Shared Libraries,Ld,.so,我在编译以下代码行时遇到问题: gcc -o main.c -ldl -lpthread -lRTU_Module main.o 我收到以下错误消息: /usr/bin/ld: cannot find -lRTU_Module collect2: error: ld returned 1 exit status 当我试图找到我的。的位置时,它返回: locate libRTU_Module.so /home/owasys/workspace/AccelTest/libRTU_Module.s
gcc -o main.c -ldl -lpthread -lRTU_Module main.o
我收到以下错误消息:
/usr/bin/ld: cannot find -lRTU_Module
collect2: error: ld returned 1 exit status
当我试图找到我的。的位置时,它返回:
locate libRTU_Module.so
/home/owasys/workspace/AccelTest/libRTU_Module.so
/home/owasys/workspace/Compiler_gcc-linaro-5.3_patch/files/lib/libRTU_Module.so
/home/owasys/workspace/Compiler_gcc-linaro-5.3_patch/files/lib/libRTU_Module.so.1.0.11
/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/libRTU_Module.so
/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/libRTU_Module.so.0
/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/libRTU_Module.so.0.0.0
/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/libRTU_Module.so.1.0.11
我有一个类似问题的答案,但我还没有解决我的问题
谢谢。
ld
通常扫描默认/配置的dir集,通常不知道诸如/home/a/b/c之类的自定义内容
应该足够容易修复;这行吗
dir=/home/owasys/workspace/Compiler_gcc-linaro-5.3_patch/files/lib
gcc -o main.c -ldl -lpthread -lRTU_Module.so main.o -L $dir
可能还需要告诉运行时链接编辑器在那里搜索,例如将此添加到gcc命令行:
-Wl,-rpath=$dir
ld
通常扫描默认/配置的目录集,通常不知道诸如/home/a/b/c之类的自定义内容
应该足够容易修复;这行吗
dir=/home/owasys/workspace/Compiler_gcc-linaro-5.3_patch/files/lib
gcc -o main.c -ldl -lpthread -lRTU_Module.so main.o -L $dir
可能还需要告诉运行时链接编辑器在那里搜索,例如将此添加到gcc命令行:
-Wl,-rpath=$dir
使用
-l
意味着您不需要提供lib
前缀或。因此后缀使用-l
意味着您不需要提供lib
前缀或。因此后缀仍然不起作用。我有一个问题,ld命令应该在哪里找到.so?大多数目录都应该是可以的,一个您和其他人都可以访问的目录;使用-L/path/to/dir
和-Wl,-rpath=/path/to/dir
指定该目录。什么不起作用?(上文未指明)。尝试使用strace
运行程序,这通常有助于隔离文件、位置、权限等方面的问题。(注意:使用-rpath引导,答案已更新)。它仍然不起作用。我有一个问题,ld命令应该在哪里找到.so?大多数目录都应该是可以的,一个您和其他人都可以访问的目录;使用-L/path/to/dir
和-Wl,-rpath=/path/to/dir
指定该目录。什么不起作用?(上文未指明)。尝试使用strace
运行程序,这通常有助于隔离文件、位置、权限等方面的问题。(注意:以-rpath开头,答案已更新)。