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

2024-01-28

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

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

例如:

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

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


g++ 的 -l 选项有一个“:”前缀,允许您使用具有非常规文件名的库。 命令

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

应在您的路径中搜索文件名为 _mylib.so 的共享库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于不遵循 libNAME.so 命名约定的库,如何在没有 -l 的情况下使用 GCC 进行链接而不是硬编码路径? 的相关文章

随机推荐