g++ link library x.so.2 没有绝对路径
g++ link library x.so.2 without absolute path
这是一个老问题,但我仍然找不到解决方案。
我有图书馆:
/usr/lib/x86_64-linux-gnu/libqca.so.2
(它是由 libqca2 包安装的,打包程序没有提供 libqca.so link,我也不想这样做,因为我正在寻找所有类似情况的答案,而不是 qca 示例仅)
那么如何在不提供 lib 完整路径名的情况下包含它:
g++ -L/usr/lib/x86_64-linux-gnu -lqca
将无法工作,因为 .2 扩展名
g++ -L/usr/lib/x86_64-linux-gnu -lqca.so.2
不允许
g++ -L/usr/lib/x86_64-linux-gnu qca.so.2
也不行。
这么简单的问题,答案是什么。
"NO IT CAN NOT" 如果具有 gcc/g++ 知识的人可以 100% 地说出来并描述一些关于它的东西,那么
"NO IT CAN NOT" 可能是正确的答案......但是 gcc 具有这两种信息并不奇怪(查找和更正 lib 名称的路径)并且不能只是组合它(就像它与 -l param 对于具有标准命名的 libs 一样)。
好的,我自己找到了答案,
关于冒号字符,
-l:libqca.so.2
在 linux manuals 上找到答案:-l namespec ... 如果 namespec 的格式为 :filename,ld 将在库路径中搜索名为 filename 的文件,否则它将在库路径中搜索名为 libnamespec.a
的文件
简单又酷
这是一个老问题,但我仍然找不到解决方案。
我有图书馆:
/usr/lib/x86_64-linux-gnu/libqca.so.2
(它是由 libqca2 包安装的,打包程序没有提供 libqca.so link,我也不想这样做,因为我正在寻找所有类似情况的答案,而不是 qca 示例仅)
那么如何在不提供 lib 完整路径名的情况下包含它:
g++ -L/usr/lib/x86_64-linux-gnu -lqca
将无法工作,因为 .2 扩展名g++ -L/usr/lib/x86_64-linux-gnu -lqca.so.2
不允许g++ -L/usr/lib/x86_64-linux-gnu qca.so.2
也不行。
这么简单的问题,答案是什么。
"NO IT CAN NOT" 如果具有 gcc/g++ 知识的人可以 100% 地说出来并描述一些关于它的东西,那么
"NO IT CAN NOT" 可能是正确的答案......但是 gcc 具有这两种信息并不奇怪(查找和更正 lib 名称的路径)并且不能只是组合它(就像它与 -l param 对于具有标准命名的 libs 一样)。
好的,我自己找到了答案,
关于冒号字符,
-l:libqca.so.2
在 linux manuals 上找到答案:-l namespec ... 如果 namespec 的格式为 :filename,ld 将在库路径中搜索名为 filename 的文件,否则它将在库路径中搜索名为 libnamespec.a
的文件简单又酷