2015-10-14 5 views
2

Несколько дней назад я загрузил клион, чтобы сделать школьный проект на C++ и Allegro5. Сначала я использовал allegro, установленный с homebrew, но он не работал, поэтому я скомпилировал его сам. Поскольку я никогда не работал с CMake, прежде чем потребовалось некоторое время, чтобы включить библиотеки и скомпилировать проект, но мне это удалось. Проблема заключается в том, что, когда я пытаюсь запустить его он выдает ошибку:Создание проекта allegro5 с CLion

dyld: Symbol not found: __al_mangled_main 
Referenced from: /usr/local/lib/liballegro_main.5.0.dylib 
Expected in: flat namespace 
in /usr/local/lib/liballegro_main.5.0.dylib 

Мои CMakeLists.txt:

cmake_minimum_required(VERSION 3.3) 
project(arkanoid) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

set(SOURCE_FILES classes/main.cpp classes/ball.cpp classes/ball.h classes/block.cpp classes/block.h) 

add_executable(arkanoid ${SOURCE_FILES}) 

INCLUDE_DIRECTORIES(allegro/5.0.11/include) 

LINK_DIRECTORIES(allegro/5.0.11/lib) 


TARGET_LINK_LIBRARIES(arkanoid allegro_acodec 
          allegro_audio 
          allegro_color 
          allegro_dialog 
          allegro_image 
          allegro_main 
          allegro_memfile 
          allegro_physfs 
          allegro_primitives 
          allegro_ttf 
          allegro_font 
          allegro) 

И сейчас мой main.cpp выглядит следующим образом:

#include <iostream> 
#include <allegro5/allegro.h> 

using namespace std; 

int main() { 

    al_init(); 

    return 0; 

} 

Я пытаюсь построить этот проект на OSX. Я искал 2 дня для решения моей проблемы, но без каких-либо результатов. Немногие люди используют CLion и даже менее используют его с allegro5. Может ли кто-нибудь понять, что означает эта ошибка?

ответ

2

Хорошо, что это взорвало мой разум. Я не знаю, почему я нашел решение только после запроса в stackoverflow, но я отправляю его для тех, кто может столкнуться с проблемой simillar. Изменение основной декларации от

int main() 

в

int main(int argc, char **argv) 

и это все. В самом деле.

+0

Это на самом деле подробно описано в Руководстве по началу работы для Allegro: http://liballeg.org/a5docs/5.0.10/getting_started.html#the-main-function – Paul

+0

Да, я действительно не знаю, как я пропустите это. Действительно глупая ошибка. –