我对使用 c 进行编程相当陌生,并且我遇到了困难,包括 squash库到我的程序中。
我克隆了存储库并运行 ./configure
和make
sudo make install
.
安装的文件:
/usr/local/lib/pkgconfig/squash-0.8.pc
/usr/local/lib/libsquash0.8.so.0.8
/usr/local/lib/libsquash0.8.so.0.8.0
/usr/local/lib/libsquash0.8.so
/usr/local/lib/cmake/Squash-0.8.0/SquashConfig.cmake
/usr/local/bin/squash
此目录中还有更多文件:
/usr/local/include/squash-0.8/
/usr/local/lib/squash/0.8/plugins/
在 Squash 示例中,该库包含在#include <squash/squash.h>
中。但是当我尝试编译它时,我得到 fatal error: squash/squash.h: No such file or directory
还有#include <squash-0.8/squash.h>
不起作用,因为然后我得到 fatal error: hedley/hedley.h: No such file or directory
该文件位于
/usr/local/include/squash-0.8/squash/hedley/hedley.h
我想对于经验丰富的 C 程序员来说,解决方案非常简单,但我在这里失败了..
我是否需要设置某种环境变量来让编译器找到该库?
我如何将库链接到编译器? 我发现了类似的东西:
-rdynamic ../squash/libsquash0.8.so.0.8
但由于上述错误,还无法测试。
最佳答案
尝试改变
#include <squash/squash.h>
至
#include "squash/hedley/hedley.h"
或
#include "<squash-0.8/squash/hedley/hedley.h>"
更简单、更快的解决方案是在编译期间添加包含的路径:
-I/usr/local/include/squash-0.8/squash/
关于C:如何包含squash压缩库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41019045/