【问题标题】:Making allegro5 project with CLion使用 CLion 制作 allegro5 项目
【发布时间】:2015-10-14 17:53:31
【问题描述】:

几天前,我下载了 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 的人更少。谁能知道这个错误是什么意思?

【问题讨论】:

    标签: c++ cmake clion allegro5


    【解决方案1】:

    好吧,这让我大吃一惊。我不知道为什么我只是在询问 stackoverflow 之后才找到解决方案,但我将它发布给可能遇到与我类似的问题的人。从

    更改您的主要声明
    int main() 
    

    int main(int argc, char **argv) 
    

    就是这样。真的。

    【讨论】:

    • 这实际上在 Allegro 入门指南中有明确描述:liballeg.org/a5docs/5.0.10/…
    • 是的,我真的不知道我是怎么错过的。真是愚蠢的错误。
    猜你喜欢
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 2020-06-07
    • 2014-11-28
    • 2018-03-26
    • 2020-12-05
    • 2021-09-15
    • 2018-03-17
    相关资源
    最近更新 更多