2015-10-14 35 views
2

几天前,我下载了clion,用C++和Allegro5制作了一个学校项目。首先,我使用安装了自制软件的allegro,但它不起作用,所以我自己编译它。因为我从来没有用过CMake,所以花了我一些时间来包含这些库并编译这个项目,但是我设法做到了。问题是,当我尝试运行它,它抛出一个错误:使用CLion制作allegro5项目

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后才找到解决方案,但是我将它发布给可能遇到类似问题的人。从

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

是的,我真的不知道我是怎么做的错过它。真是愚蠢的错误。 –