当我执行此命令时

g++ -L/home/andrea/Desktop/cppTest/Test1/myLib -I/home/andrea/Desktop/cppTest/Test1/commons -lNames compiledObjects/SayHello.o -o SayHello


编译器返回此错误:

/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lNames
collect2: error: ld returned 1 exit status


为什么编译器在这里搜索“名称”

/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld


代替

/home/andrea/Desktop/cppTest/Test1/myLib


那是使用-L argmunt指定的路径?

发现问题

真正的问题是我忘记了以这种方式命名库libName.so

最佳答案

正确的语法如下

g++ -I/home/andrea/Desktop/cppTest/Test1/commons  compiledObjects/SayHello.o -o SayHello -L/home/andrea/Desktop/cppTest/Test1/myLib -lNames


(即末尾的-L-l选项)。

并确保目录/home/andrea/Desktop/cppTest/Test1/包含库libNames.so

关于c++ - 使用-L arg进行g++编译找不到共享库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35776539/

10-11 23:17