Как исправить ошибку: множественное определение GuiEnable?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как исправить ошибку: множественное определение GuiEnable?

Сообщение Anonymous »

У меня возникли проблемы с настройкой raygui.h с помощью cmake с использованием двух целей: библиотеки и исполняемого файла. Здесь есть репозиторий с точными файлами, которые вызывают ошибки многократного определения SomeFunction во время сборки. Ошибки такие, как показано ниже:
/usr/bin/ld: libgame-lib.a(hello_world.cpp.o): in function `GuiEnable':
hello_world.cpp:(.text+0x0): multiple definition of `GuiEnable'; CMakeFiles/exe.dir/src/main.cpp.o:main.cpp:(.text+0x0): first defined here

Это похоже на то, что все объявления raygui.h были сделаны дважды.
Проблема не возникает в основной ветке, где только одна цель напрямую связана с raygui.h.
Это файлы в ветке, в которой возникла проблема:
// hello_world.hpp
// ----------------------------------------------------------------------------
#include "raylib.h"

#define RAYGUI_IMPLEMENTATION
#include "raygui.h"

void hello_world();
// ----------------------------------------------------------------------------

// hello_world.cpp
// ----------------------------------------------------------------------------
#include "hello_world.hpp"

void hello_world() {
InitWindow(300, 300, "Hello World with raylib.");

while (!WindowShouldClose()) {
BeginDrawing();
ClearBackground(BLACK);
DrawText("Hello World", 120, 150, 12, RED);
GuiButton((Rectangle) {115, 180, 80, 16}, "Hello World");
EndDrawing();
}
}
// ----------------------------------------------------------------------------

// main.cpp
// ----------------------------------------------------------------------------
#include "hello_world.hpp"

int main() {
hello_world();
return 0;
}
// ----------------------------------------------------------------------------


Подробнее здесь: https://stackoverflow.com/questions/798 ... -guienable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»