cmake没有找到我的allegro包含和llibs所以编译时错误

时间:2011-11-29 16:51:59

标签: c++ cmake allegro

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

然而,当我编译我的源代码时,我得到allegro_init()没有声明错误,所以我检查了CMakeLists.txt文件,我认为问题存在:

project(game)
add_executable(game main.cpp)

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

我有一般安装:

  • 包含在/usr/include
  • 和libs位于/usr/lib

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

如果不明显我的问题是我的CMakeLists.txt看起来应该与包含的allegro进行编译。

3 个答案:

答案 0 :(得分:4)

也许你忘了指定include path或lib路径。 如果你的allegro的头文件位于/ usr / local / allegro / include中 和allegro的lib文件,其名称为liballegro.a,位于/ usr / local / allegro / lib中 添加以下脚本可能会解决您的问题。

INCLUDE_DIRECTORIES( 在/ usr /本地/快板/包括 )

LINK_DIRECTORIES(    在/ usr /本地/快板/ lib目录 )

TARGET_LINK_LIBRARIES(游戏 liballegro.a )

答案 1 :(得分:1)

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

项目(游戏)

add_executable(游戏main.cpp)

target_link_libraries(game -l {library})

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

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

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

最好的问候。

答案 2 :(得分:0)

实际上我发现这样做的正确方法是使用

向cmake添加一个CXX标志

kdev选项

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

和.a预先编译

抱歉,伙计们,但是我会全力支持你们