Создание проекта allegro5 с CLion

Несколько дней назад я скачал clion, чтобы сделать школьный проект на C++ и Allegro5. Сначала я использовал allegro, установленный с homebrew, но он не работал, поэтому я скомпилировал его сам. Поскольку я никогда раньше не работал с 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. Кто-нибудь может понять, что эта ошибка вообще означает?

1 ответ

Решение

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

int main() 

в

int main(int argc, char **argv) 

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

Другие вопросы по тегам