使用Allegro依赖项构建C项目
我有一个以Allegro为基础的游戏,它在本地构建得非常愉快。我一直在尝试为它设置Travis CI集成,但在Allegro依赖项方面遇到了问题。具体而言:使用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
- 没有
pseudo包:因此我将liballegro4-dev
改为引用特定的.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
,这样做很有效。