cmake не нашел мои аллегро-инклипы и библиотеки, так что ошибка времени компиляции - PullRequest
0 голосов
/ 29 ноября 2011

Я пытаюсь настроить свой код для использования allegro libray, я использую KDEV4 под mandriva, я установил пакет allegro-dev. Затем при использовании функций allegro в KDevelop он отображает документацию, поэтому он наверняка нашел библиотеку.

Однако, когда я компилирую исходный код, я получаю 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 free, cmake 2.8.4.

Если не очевидно, мой вопрос - как должен выглядеть мой CMakeLists.txt для компиляции с включенным allegro.

Ответы [ 3 ]

4 голосов
/ 30 ноября 2011

Может быть, вы забыли указать путь для включения или путь к lib. Если заголовочные файлы вашего allegro находятся в / usr / local / allegro / include и lib файл allegro, имя которого liballegro.a, находится в / usr / local / allegro / lib Возможно, добавьте следующий скрипт, чтобы решить вашу проблему.

include_directories ( / USR / местные / Allegro / включают )

LINK_DIRECTORIES ( / USR / местные / аллегро / Библиотека )

TARGET_LINK_LIBRARIES (игра liballegro.a )

1 голос
/ 29 ноября 2011

Один из возможных способов - сделать это следующим образом.

project (game)

add_executable (game main.cpp)

target_link_libraries (game -l {library})

Где {библиотека} - это имя библиотеки, с которой вам нужно связать свой исполняемый файл.

В вашем случае я думаю, что это должно быть libalegro или что-то в этом роде.

Полагаю, есть лучший способ, но я не очень разбираюсь в Cmake.

С наилучшими пожеланиями.

0 голосов
/ 01 декабря 2011

На самом деле я обнаружил, что правильный способ сделать это - добавить флаг CXX в cmake, используя

kdev options

и использовать 'allegro-settings --libs', который будетверните правильное место включений и .O

и .a предварительно скомпилированных

извините, ребята, спасибо, но я вас всех проголосую

...