首先我会说我是 gcc 和 makefile 的新手。我在桌面 (~/Desktop) 上有一个名为
lib.so
的 .so 文件。我想将我的程序(称为 myProgram)链接到它。我在 makefile 中写的是:
g++ myProgram.o -L ~/Desktop -l lib -o myProgram
当我运行
make
我得到一个错误:
/usr/bin/ld: cannot find -llib
我也试过
-l lib.so
,得到了同样的错误。
什么是正确的链接方式?
两种解决方案:
将文件重命名为
libsomething.so
,然后使用-l something
。链接器会自动用 lib
前缀和 .so
后缀(或静态库的 .a
后缀)包装名称。
使用选项
-l:lib.so
。当您在名称前加上 :
时,链接器将使用给定的名称。
这些在
ld
手册页中有解释。