2015-10-14 1 views
2

Il y a quelques jours, j'ai téléchargé clion pour faire un projet d'école en C++ et Allegro5. J'ai d'abord utilisé allegro installé avec homebrew mais ça ne fonctionnait pas alors je l'ai compilé moi-même. Comme je n'ai jamais travaillé avec CMake avant qu'il m'ait fallu du temps pour inclure les libs et compiler le projet mais j'ai réussi à le faire. Le problème est que lorsque je tente de l'exécuter, il renvoie une erreur:Faire un projet allegro5 avec 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 

Mon 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) 

Et pour l'instant mon main.cpp ressemble à ceci:

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

using namespace std; 

int main() { 

    al_init(); 

    return 0; 

} 

J'essaye de construire ce projet sur OSX. J'ai cherché 2 jours pour la solution à mon problème mais sans résultats. Peu de gens utilisent CLion et encore moins l'utilisent avec allegro5. Quelqu'un pourrait-il avoir une idée de ce que cette erreur signifie même?

Répondre

2

Ok, celui-ci a soufflé mon esprit. Je ne sais pas pourquoi j'ai trouvé la solution seulement après avoir demandé sur stackoverflow mais je l'affiche pour quelqu'un qui pourrait rencontrer le problème simillar à moi. Changer votre déclaration principale de

int main() 

à

int main(int argc, char **argv) 

et voilà. Vraiment.

+0

Ceci est en fait explicitement décrit dans le Guide de démarrage pour Allegro: http://liballeg.org/a5docs/5.0.10/getting_started.html#the-main-function – Paul

+0

Ouais, je ne sais vraiment pas comment je l'ai fait manque ça. Erreur vraiment stupide. –