从已安装的c-algorithms库

时间:2017-10-19 10:43:44

标签: c gcc header

我试图从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

任何帮助都会受到高度关注

2 个答案:

答案 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

(无论使用哪种,有些人使用食谱"全部测试"等等)

全部

如果您的系统已准备好处理它们,那么这将完成所有操作。