cmake找不到我的allegro包含和llib,因此编译时错误

问题描述 投票:0回答:3

我试图设置我的代码以使用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下免费安装了Allegro 4.4,cmake 2.8.4。

如果不是很明显,我的问题是我的CMakeLists.txt在包含快板的情况下应该看起来像什么。

c++ cmake allegro
3个回答
4
投票

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

INCLUDE_DIRECTORIES(
/usr/local/allegro/include
)

LINK_DIRECTORIES(
   /usr/local/allegro/lib
) 

TARGET_LINK_LIBRARIES(game
liballegro.a 
)

1
投票

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

项目(游戏)

add_executable(game main.cpp)

target_link_libraries(game -l {library})

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

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

我想有更好的方法,但是我对Cmake不太了解。

最诚挚的问候。


0
投票

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

kdev options 

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

和.a预编译

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

© www.soinside.com 2019 - 2024. All rights reserved.