链接错误:/usr/bin/ld: cannot find -l<库名> 在 Linux 上的 C++
你好!我是 C++ 和 Linux 的新手,已经为这个错误折腾了好几个小时。我写了一个简单的程序,使用图像处理库(libpng)。通过 apt 安装了它:`sudo apt install libpng-dev`。这是我的代码(main.cpp 文件):
```cpp
#include
#include
int main() {
std::cout << "Hello, PNG!" << std::endl;
return 0;
}
```
编译命令:`g++ main.cpp -o test -lpng`。结果得到:
```
/usr/bin/ld: cannot find -lpng
collect2: error: ld returned 1 exit status
```
我检查了库文件是否存在:`ls /usr/lib/x86_64-linux-gnu/libpng*` 显示有 `libpng16.a`、`libpng16.so`、`libpng.a` 和 `libpng.so`。为什么链接器找不到库?我尝试了不同的标志:`-L/usr/lib/x86_64-linux-gnu`、`-static`,但都没用。库确实安装了,但程序无法编译。我哪里做错了?请为新手解释一下。
错误原因及解决方案
错误 /us