2011-11-29 59 views
0

我想設置我的代碼使用allegro libray,我使用Mandriva下的KDEV4,我安裝了allegro-dev軟件包。然後當在KDevelop中使用allegro功能時,它顯示文檔,所以他肯定會找到該庫。cmake沒有找到我的allegro包括和llibs所以編譯時錯誤

然而,當我編譯我的源我得到allegro_init()未聲明的錯誤,所以我檢查了CMakeLists.txt文件,我認爲這個問題是存在的:

project(game) 
add_executable(game main.cpp) 

我應該怎麼寫cmake的發現和鏈接庫?

我有個大致的安裝,其中:

  • 包括在/usr/include
  • 和庫是在/usr/lib

我安裝Allegro 4.4下KDE 4.6.5的Mandriva 2011免費,CMake的2.8 0.4。

如果不是很明顯,我的問題是我的CMakeLists.txt應該看起來像包括快捷鍵一起編譯。

回答

3

這也許你忘了指定包含路徑或lib路徑。 如果您的快板文件頭文件位於/ usr/local/allegro/include 中,並且Allegro的lib文件名爲liballegro.a,請在/ usr/local/allegro/lib中找到 添加以下腳本可能會解決您的問題。

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

LINK_DIRECTORIES( 的/ usr /本地/快板/ lib中 )

TARGET_LINK_LIBRARIES(遊戲 liballegro。一 )

1

一種可能的方法就是這樣做。

項目(遊戲)

add_executable(遊戲main.cpp中)

target_link_libraries(遊戲-l {}庫)

其中{}庫的名稱是,如果你需要的庫鏈接到您的可執行文件

在你的情況,我認爲它應該是libalegro或類似的東西。

我想有更好的辦法,但我對Cmake並不是很有經驗。

此致敬禮。

0

其實我發現,這樣做的正確方法是一個CXX標誌添加到使用

K設備選項

的cmake並使用了「快板的設置--libs」即會返回正確的地方的包括與.O

和.A precompilled

對不起你們,THX但我會給予好評大家

+0

能ÿ ou請澄清這一點多一點?謝謝。 –

+0

真的不清楚你是什麼意思,以及它是如何實施的。 – tversteeg

+0

命令'allegro-settings --libs'將返回到lib的正確路徑 – Qchmqs