/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开头,答案已更新)。