В Короче говоря, я пишу программу, которая выглядит следующим образом:
Код: Выделить всё
#include
int main()
{
if (!glfwInit()) return 1;
glfwTerminate();
return 0;
}
Код: Выделить всё
gcc -x c++ -Iinclude -owindow.exe window.cpp -lglfw3 -Llib
Код: Выделить всё
OpenGL Test 2-Window (root)
--include (directory)
----GLFW (directory)
------**glfw3.h** (glfw header)
------**glfw3native.h** (glfw header)
--lib (directory)
----**libglfw3.a** (static library for MinGW-w64)
--**window.cpp** (contains the code from above)
Код: Выделить всё
C:\privatepath\cc6uFxnu.o:window.cpp:(.text+0xc): undefined reference to `glfwInit'
C:\privatepath\cc6uFxnu.o:window.cpp:(.text+0x21): undefined reference to `glfwTerminate'
collect2.exe: error: ld returned 1 exit status
-Переставить аргументы в инструкциях компиляции
-Импортировать статическую библиотеку файл как код вместо его связывания
-Связывание gdi32 с glfw
-Реорганизация файлов glfw
и ничего из этого не помогло.
Поэтому у меня двойной вопрос: что здесь происходит и как это исправить? Спасибо за помощь.
РЕДАКТИРОВАНИЕ (04.01.25): забыл упомянуть: я использую MinGW на компьютере с Windows 10.
РЕДАКТИРОВАНИЕ (05.01.25): Ни то, ни другое вопросы, перечисленные как «дубликаты», предлагают решения (хотя они похожи ситуации). Решение первого вопроса просто не сработало (уже пробовал это до написания этого поста), а второе не имеет значения, поскольку в нем обсуждается динамическое связывание, а не статическое связывание (также я удалил все файлы динамических ссылок из моего рабочего пространства, так что "спутать компоновщик" с неправильными файлами - это, конечно, не проблема).
Подробнее здесь: https://stackoverflow.com/questions/793 ... at-do-i-do
Мобильная версия