在gcc中链接到so库

Ben*_*ler 6 linker gcc shared-libraries

我将首先说我是gcc和makefile的新手.我在桌面(〜/桌面)上有一个.so文件lib.so.我想将我的程序(称为myProgram)链接到它.我在makefile中写的是:

g++ myProgram.o -L ~/Desktop -l lib -o myProgram
Run Code Online (Sandbox Code Playgroud)

当我跑步时,make我得到一个错误:

/usr/bin/ld: cannot find -llib
Run Code Online (Sandbox Code Playgroud)

我也试过-l lib.so并得到了同样的错误.链接的正确方法是什么?

Bar*_*mar 12

两种解决方案

  1. 将文件重命名为libsomething.so,然后使用-l something.链接器自动使用lib前缀和.so后缀(或.a静态库的后缀)包装名称.

  2. 使用该选项-l :lib.so.当您使用名称前缀时:,链接器使用给定的名称.

这些在ld手册页中进行了解释.

  • 该目录应位于LD_LIBRARY_PATH环境变量中. (2认同)