使用 CLion 制作 allegro5 项目
Making allegro5 project with CLion
几天前我下载了 clion 来用 C++ 和 Allegro5 做一个学校项目。首先,我使用了与 homebrew 一起安装的 allegro,但它没有用,所以我自己编译了它。因为我之前从未使用过 CMake,所以我花了一些时间来包含库和编译项目,但我设法做到了。问题是当我尝试 运行 它时它抛出一个错误:
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 的人更少。谁能知道这个错误到底是什么意思?
好吧,这个让我大吃一惊。我不知道为什么我只在询问 Whosebug 后才找到解决方案,但我将其发布给可能遇到与我类似问题的人。从
更改您的主要声明
int main()
至
int main(int argc, char **argv)
就是这样。真的。
几天前我下载了 clion 来用 C++ 和 Allegro5 做一个学校项目。首先,我使用了与 homebrew 一起安装的 allegro,但它没有用,所以我自己编译了它。因为我之前从未使用过 CMake,所以我花了一些时间来包含库和编译项目,但我设法做到了。问题是当我尝试 运行 它时它抛出一个错误:
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 的人更少。谁能知道这个错误到底是什么意思?
好吧,这个让我大吃一惊。我不知道为什么我只在询问 Whosebug 后才找到解决方案,但我将其发布给可能遇到与我类似问题的人。从
更改您的主要声明int main()
至
int main(int argc, char **argv)
就是这样。真的。