使用 -L arg 编译的 g++ 找不到共享库
g++ compiling with -L arg not finds a shared library
当我执行这个命令时
g++ -L/home/andrea/Desktop/cppTest/Test1/myLib -I/home/andrea/Desktop/cppTest/Test1/commons -lNames compiledObjects/SayHello.o -o SayHello
编译器return这个错误:
/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
.
当我执行这个命令时
g++ -L/home/andrea/Desktop/cppTest/Test1/myLib -I/home/andrea/Desktop/cppTest/Test1/commons -lNames compiledObjects/SayHello.o -o SayHello
编译器return这个错误:
/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
.