我试图从Github安装和测试c库c算法。
https://github.com/fragglet/c-algorithms/blob/master/test/test-queue.c
当我尝试使用以下命令从生成的测试文件夹测试安装时:
gcc -o test-arraylist `pkg-config --cflags --libs libcalg-1.0` test-arraylist.c
我得到以下错误按摩:
test-arraylist.c:30:23: fatal error: arraylist.h: No such file or directory
compilation terminated.
我使用的是Vagrant框:ubuntu / xenial32和Ubuntu 14.04.5 LTS
在安装c算法之前:
sudo apt-get install autoconf
sudo apt-get install libtool
sudo apt-get install pkg-config
要安装我已经完成的库:
sudo ./autogen.sh
sudo ./configure
sudo make
sudo make install
任何帮助都会受到高度关注
答案 0 :(得分:0)
test-arraylist.c有一行#include "arraylist.h"
但它位于libcalg子目录下,而不是直接在include路径中。
应将libcalg子目录添加到包含路径,或者您必须修改包含#include "libcalg/arraylist.h"
如果您只想运行测试,请运行
来自构建根目录的sudo make check
(在您的情况下,它是源根目录)
答案 1 :(得分:-1)
这可能会被进程恋物癖者踩踏。
但是
当您构建Unix / Linux操作系统(以及RTEMS等衍生产品)时,您正在构建其他人的库 - 因此您需要这些库及其头文件(就像c-alg ... )安装在编译器可以找到的位置。
要查找与包关联的文件,请使用dpkg,如下所述: https://askubuntu.com/questions/481/how-do-i-find-the-package-that-provides-a-file
但是你有另一个你可能不知道的问题。当软件使用GNU autoconf automake并且可能是libtool正常运行时,您正在尝试使用gcc命令编译测试程序。
也许您不了解您需要确保autoconf,automake,然后libtool从一个目录系统找到正确的配置到另一个目录系统。 Fedora将文件放在Ubuntu发行版的不同位置。
改为运行:
autoreconf -fvi
首先在顶级目录中查看是否找到了您的头文件。
那么你运行
./configure
然后
make test/check
(无论使用哪种,有些人使用食谱"全部测试"等等)
全部
如果您的系统已准备好处理它们,那么这将完成所有操作。