/ usr / bin / ld仅在编译期间找不到<library>

时间:2019-12-02 04:47:46

标签: c++ c g++ ld vulkan

它引发的错误:

g++ -m64 -std=c++17 main.cpp -o vulkanprogram -lvulkan
/usr/bin/ld: cannot find -lvulkan
collect2: error: ld returned 1 exit status

我自己找到ld会返回什么:

ld -lvulkan --verbose
attempt to open /usr/lib/libvulkan.so succeeded
/usr/lib/libvulkan.so

有人可以帮我解释一下吗?

2 个答案:

答案 0 :(得分:0)

这是因为ld无法搜索正确的路径

在运行之前使用此功能:export LD_LIBRARY_PATH=/usr/lib

或这个g++ -m64 -std=c++17 main.cpp -o vulkanprogram -I/usr/include/ -L/usr/lib/ -lvulkan

答案 1 :(得分:0)

表面上,基于注释,问题出在LD搜索路径上。提供完整路径(/ usr / lib / lib ...)似乎可以解决该问题。

g++ -m64 -std=c++17 main.cpp -o vulkanprogram /usr/lib/libvulkan.so

有关永久解决方案-使用

进行故障排除
  • 详细ld输出:g++ --Wl,--verbose m64 -std=c++17 main.cpp -o vulkanprogram /usr/lib/libvulkan.so
  • 检查库file /usr/lib/libvulkan.so的类型