c++ - 对于不遵循 libNAME.so 命名约定的库,如何在没有 -l 或硬编码路径的情况下使用 GCC 链接?

标签 c++ c gcc linker shared-libraries

我有一个共享库,我希望使用 GCC 链接可执行文件。共享库的名称不是 libNAME.so 形式的非标准名称,因此我不能使用通常的 -l 选项。 (它恰好也是一个 Python 扩展,因此没有“lib”前缀。)

我可以将库文件的路径直接传递给链接命令行,但这会导致库路径被硬编码到可执行文件中。

例如:

g++ -o build/bin/myapp build/bin/_mylib.so

有没有办法链接到这个库而不会导致路径被硬编码到可执行文件中?

最佳答案

有一个“:”前缀可以让你给你的库赋予不同的名字。 如果你使用

g++ -o build/bin/myapp -l:_mylib.so other_source_files

应该在路径中搜索 _mylib.so。

关于c++ - 对于不遵循 libNAME.so 命名约定的库,如何在没有 -l 或硬编码路径的情况下使用 GCC 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/207069/

相关文章:

c++ - 增加字符串文字长度限制

c++ - 断言与 ATLASSERT 与断言

c++ - 结构定义后的变量名

c++ - C/C++ : Bitwise operators on dynamically allocated memory

c - GCC构造函数不执行

c - Makefile:一个命令输入多个文件

c++ - 如何在 opencv c++ 中从实时视频提要的帧上画一条线

Java JAI BufferedImage 与 C++ OpenCV Mat imread?

c - 合并排序实现中的段错误

c - 从文本中读取数字并对数字进行排序