Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Allegro依赖项构建C项目_C_Travis Ci_Allegro - Fatal编程技术网

使用Allegro依赖项构建C项目

使用Allegro依赖项构建C项目,c,travis-ci,allegro,C,Travis Ci,Allegro,我有一个以Allegro为基础的游戏,它在本地构建得非常愉快。我一直在尝试为它设置Travis CI集成,但在Allegro依赖项方面遇到了问题。具体而言: 没有liballegro4-devpseudo包:因此我将.travis.yml改为引用特定的liballegro4.2-dev包 我的CMake库检测在Travis CI中不起作用:我已从我的CMakeLists.txt中注释掉了检查库是否存在(Allge al_trace”“have_ALLEGRO),以解决此问题 在Travis C

我有一个以Allegro为基础的游戏,它在本地构建得非常愉快。我一直在尝试为它设置Travis CI集成,但在Allegro依赖项方面遇到了问题。具体而言:

  • 没有
    liballegro4-dev
    pseudo包:因此我将
    .travis.yml
    改为引用特定的
    liballegro4.2-dev
  • 我的CMake库检测在Travis CI中不起作用:我已从我的
    CMakeLists.txt
    中注释掉了
    检查库是否存在(Allge al_trace”“have_ALLEGRO)
    ,以解决此问题
  • 在Travis CI中,我得到了构建错误,这表明我需要引用各种X11库
我的问题是:

  • 有人在Travis CI上成功构建了基于Allegro的C项目吗?如果是这样的话,你能给我指一下你的
    .travis.yml
    文件来获得一些灵感吗
  • 什么是Allegro的有效库检查
  • 为什么Travis CI上的包依赖于X11库,而在本地(Linux)机器上构建时似乎没有这种依赖

指向我最近失败的Travis CI构建的链接,是另一个构建,它显示了我提到的一些与X11相关的失败。

我自己问题的答案:添加附加库
X11
Xcursor
Xxf86vm
Xpm
到我的
target\u link\u库
CMakeLists.txt
中的声明起作用。我认为@CássioRenan建议我在Travis CI上使用静态库而不是共享库,这听起来是正确的。

关于你的第三个问题:Allegro确实依赖于X11。我怀疑您在本地计算机上链接的是共享版本,但在TravisCI上链接的是静态版本(这也需要链接依赖项),但我无法确认。您可能需要找到另一个软件包,使用
-DSTATIC=OFF-DSHARED=ON
从源代码处编译allegro,或者使用x11链接。@CássioRenan:谢谢。我怀疑是这样的。奇怪的是,我刚刚在本地机器上安装了标准的
liballegro4.4-dev
,所以我希望链接与Travis CI上的包相同。我想我必须在我的CMake配置中引入一个开关,以创建一个可以处理静态依赖关系的构建。@CássioRenan:在我的
目标链接库中添加额外的库
X11
Xcursor
Xxf86vm
Xpm
,这样做很有效。