g++找不到共享库
g++ cannot find shared library
我很抱歉这是多余的,但似乎没有一个可用的答案能够解决我的问题。我正在尝试使用共享对象库编译一个可执行文件。共享对象库称为libsession.so
,位于我编译可执行文件的同一目录中。为了编译和链接,我使用以下命令
g++ test_main.cpp -o program -std=c++11 -I ../src/base -L. -lsession
不幸的是,我在链接时遇到了找不到-lsession错误。如果我将命令更改为直接引用共享库,如下所示
g++ test_main.cpp -o program -std=c++11 -I ../src/base libsession.so
然后可执行文件编译/链接,一切正常。有人认为我做错了什么吗?
使用"-l"选项和指定文件之间的唯一区别名称是"-l"用"lib"answers".a"包围库并进行搜索几个目录。
https://gcc.gnu.org/onlinedocs/gcc-3.0/gcc_3.html#SEC16
实际上它遵循特定的命名约定,比如库名称前面应该有lib。因此,如果您将库名称更改为libsession,那么它将起作用。
相关文章:
- 运行程序时找不到共享对象库,但在编译过程中链接了它
- 项目 A 依赖共享库 B,B 依赖 C,A 不依赖 C。当我使用 B 的 API 时,警告 B 找不到 C
- 运行可执行文件时找不到共享库,即使共享库存在于指定的路径中
- Ogre 3D共享库与CMAKE链接时,在Linux上执行二进制时找不到
- Visual Studio共享库(Android,iOS)标题在Mac上找不到
- Qt应用程序在运行时找不到共享库
- CMAKE链接在Windows上共享库(LIB),但找不到DLL
- 在运行时找不到共享对象.克尔普克
- 即使定义了搜索路径,也找不到自定义共享库
- 我的交叉编译器找不到共享库
- 我可以在libleveldb.a中找到符号,但是当我创建共享库时,找不到相同的符号。
- SFML2 应用程序找不到共享对象
- Linux-找不到共享库
- GNU Linker 找不到本地共享库
- 将共享库与dlopen一起使用-共享对象找不到加载程序导出的符号
- 在交叉编译、Ubuntu到Beaglebone之后,在目标上找不到共享库
- C++/Eclipse共享库:为什么g++找不到这个库
- Ctypes 在使用 CMake 创建的共享库中找不到符号
- 即使我修改了LD_LIBRARY_PATH,也找不到我的共享库
- 在 Boost 中找不到共享库 (Linux Mint)