Запустите imgui demo.cpp с помощью cmakeC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Запустите imgui demo.cpp с помощью cmake

Сообщение Anonymous »

Код: Выделить всё

cmake_minimum_required(VERSION 3.24)

project(TestImGui)

set(CMAKE_CXX_STANDARD 20)

file(GLOB_RECURSE SOURCES
imgui_demo.cpp
imgui.cpp
imgui_draw.cpp
imgui_tables.cpp
imgui_widgets.cpp
backends/imgui_impl_glfw.cpp
backends/imgui_impl_opengl3.cpp
)

file(GLOB_RECURSE HEADERS
imgui.h
imgui_internal.h
backends/imgui_impl_glfw.h
backends/imgui_impl_opengl3.h
)

add_library(${PROJECT_NAME} SHARED ${SOURCES} ${HEADERS}
backends/imgui_impl_opengl3.cpp
)

add_executable(${PROJECT_NAME}-app
imgui_demo.cpp
)
Я ожидаю, что imgui_demo.cpp запустится. Но я получаю много ошибок при связывании

Код: Выделить всё

[1/1] Linking CXX executable TestImGui-app
FAILED: TestImGui-app
: && /usr/bin/g++-12 -g  CMakeFiles/TestImGui-app.dir/imgui_demo.cpp.o -o TestImGui-app   && :
/usr/bin/ld: CMakeFiles/TestImGui-app.dir/imgui_demo.cpp.o: warning: relocation against `_ZN15ImGuiTextBuffer11EmptyStringE' in read-only section `.text._ZNK15ImGuiTextBuffer3endEv[_ZNK15ImGuiTextBuffer3endEv]'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/Scrt1.o: в функции «_start»:
(.text+0x1b): undefined reference to `main'
/usr/bin/ld: CMakeFiles/TestImGui-app.dir/imgui_demo.cpp.o: в функции «HelpMarker(char const*)»:
/home/user/imgui_proj/imgui/imgui_demo.cpp:241:(.text+0x20): undefined reference to `ImGui::TextDisabled(char const*, ...)'
/usr/bin/ld: /home/user/imgui_proj/imgui/imgui_demo.cpp:242:(.text+0x25): undefined reference to `ImGui::BeginItemTooltip()'
/usr/bin/ld: /home/user/imgui_proj/imgui/imgui_demo.cpp:244:(.text+0x2e): undefined reference to `ImGui::GetFontSize()'
/usr/bin/ld: /home/user/imgui_proj/imgui/imgui_demo.cpp:244:(.text+0x47): undefined reference to `ImGui::PushTextWrapPos(float)'
/usr/bin/ld: /home/user/imgui_proj/imgui/imgui_demo.cpp:245:(.text+0x58): undefined reference to `ImGui::TextUnformatted(char const*, char const*)'
/usr/bin/ld: /home/user/imgui_proj/imgui/imgui_demo.cpp:246:(.text+0x5d): undefined reference to `ImGui::PopTextWrapPos()'
/usr/bin/ld: /home/user/imgui_proj/imgui/imgui_demo.cpp:247:(.text+0x62): undefined reference to `ImGui::EndTooltip()'
Что нужно исправить в файле? Любая помощь будет принята с благодарностью. Я идиот

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

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

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

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

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

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