0

我正在尝试设置我的代码以使用 allegro libray,我在 mandriva 下使用 KDEV4,我安装了 allegro-dev 包。然后在 KDevelop 中使用 allegro 函数时,它会显示文档,所以他肯定找到了该库。

但是,当我编译我的源代码时,我allegro_init()没有声明错误,所以我检查了CMakeLists.txt文件,我认为问题就在那里:

project(game)
add_executable(game main.cpp)

我应该写什么给 cmake 来查找和链接库?

我有一个一般安装,其中:

  • 包括在/usr/include
  • 和库在/usr/lib

我在 KDE 4.6.5 mandriva 2011 free、cmake 2.8.4 下安装了 allegro 4.4。

如果不是很明显我的问题是我的 CMakeLists.txt 应该是什么样子与包含的 allegro 一起编译。

4

3 回答 3

4

那可能是您忘记指定包含路径或库路径。如果你的 allegro 的头文件位于 /usr/local/allegro/include ,并且 allegro 的 lib 文件名为 liballegro.a 位于 /usr/local/allegro/lib 添加以下脚本也许可以解决你的问题。

INCLUDE_DIRECTORIES(
/usr/local/allegro/include
)

LINK_DIRECTORIES(
   /usr/local/allegro/lib
) 

TARGET_LINK_LIBRARIES(game
liballegro.a 
)
于 2011-11-30T03:03:40.267 回答
1

一种可能的方法是这样做。

项目(游戏)

add_executable(游戏 main.cpp)

target_link_libraries(游戏 -l{library})

其中 {library} 是您需要链接到可执行文件的库的名称。

在你的情况下,我认为它应该是 libalegro 或类似的东西。

我想有更好的方法,但我对 Cmake 不是很有经验。

最好的祝福。

于 2011-11-29T17:17:30.507 回答
0

实际上我发现这样做的正确方法是使用以下方法向 cmake 添加一个 CXX 标志:

kdev options 

并使用 a'allegro-settings --libs'将返回包含的正确位置和 .O

和 .a 预编译

对不起,谢谢,但我会支持你们所有人

于 2011-12-01T15:58:20.987 回答