Задать вопрос
@Zadavatel_Voprosov

Как подружить Nuklear и CLion с MinGw-W64 (Windows и Си без ++)?

Всем привет! Подумал, что надо какой-то маленький GUI без всяких зависимостей и желательно кросс-платформенный (+ чтоб был на СИ). Для этого выбрал Nuklear.
Извлекаю из архива все файлы в папке src и кидаю в Папочка_Проекта/libs/nuklear.

Добавляю в CMakeLists.txt путь к библиотеке:
cmake_minimum_required(VERSION 3.10)
project(MozetGui C)

set(CMAKE_C_STANDARD 11)

add_executable(MozetGui main.c)

target_include_directories( MozetGui PUBLIC ${CMAKE_SOURCE_DIR}/libs/nuklear )

Для проверки компилирую:
#define NK_IMPLEMENTATION
#include <nuklear.h>

И получаю:
"C:\Program Files\JetBrains\CLion 2018.1.5\bin\cmake\bin\cmake.exe" --build C:\Users\Timoshka-WIN10\Documents\CLionProjects\MozetGui\cmake-build-debug --target MozetGui -- -j 1
Scanning dependencies of target MozetGui
[ 50%] Building C object CMakeFiles/MozetGui.dir/main.c.obj
[100%] Linking C executable MozetGui.exe
C:/PROGRA~2/MINGW-~1/I686-8~1.0-W/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[3]: *** [CMakeFiles\MozetGui.dir\build.make:97: MozetGui.exe] Error 1
mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:67: CMakeFiles/MozetGui.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:79: CMakeFiles/MozetGui.dir/rule] Error 2
mingw32-make.exe: *** [Makefile:117: MozetGui] Error 2

И что-то я тут ничего не понял, вроде с кодом то всё ок, а вот компилятор мозги сломал.
Чем склеить мозги компилятора? :))
  • Вопрос задан
  • 679 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
С компилятором все ок. Мозги сломал линкер. Там именно исходники, или хейдеры +библиотека? Если второе - то укажите линкеру где искать библиотеку.
Ответ написан
@Zadavatel_Voprosov Автор вопроса
Без функции int main() { /* Кодик */ } в любом случае не будет работать и вылетать в ошибку линковки.

СОВЕТ!
Не пользуйтесь дерьмом как toster.ru.
Лучше помогут на ru.stackoverflow.com, а лучше задавайте вопросы сразу в двух местах.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы