Tre*_*key 3 c++ ubuntu gcc shared
我正在尝试使用gcc在ubuntu上创建一个共享库
我只有一个简单的类(shared.h和shared.cpp)和一个使用它的客户端(main.cpp)
这是我的makefile,我仍然无法来编译程序。
all:
#compile object(fPIC: creates position independent code)
gcc -fPIC -Wall -g -c shared.cpp
#compile shared library
gcc -shared -Wl,-soname,libshared.so.1 -o libshared.so.1.0.1 shared.o -lc
#link shared library
gcc -g -o main main.cpp -L. -lshared
Run Code Online (Sandbox Code Playgroud)
我不想安装该库,我只想能够从当前目录链接它。我已经尝试过:export LD_LIBRARY_PATH=.
但似乎没有什么区别。一切都在当前目录中。
错误:/usr/bin/ld:找不到 -lshared
如何让编译器检查我的库的当前目录?
问题不在于它没有在目录中查找,问题在于您已将库命名为“libshared.so.1.0.1”。当您使用 -lshared 时,它会在库搜索路径中查找名为“libshared.so”或“libshared.a”的文件。
大多数时候,在使用版本控制的系统库时,即使您已经安装了“libshared.so.1”或“libshared.so.1.0.1”,您也会提供最新版本的链接“libshared.so” 。
在您的情况下,如果您继续保留名为“libshared.so.1.0.1”的文件,您将需要创建 2 个符号链接:
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |