我正在尝试设置我的代码以使用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进行编译。
答案 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预先编译
抱歉,伙计们,但是我会全力支持你们