TL; DR - я перепробовал все решения, которые смог найти, пока ничего не сработало.
Здравствуйте, я искал вдоль и поперек, но не нашел ответа на свою проблему. Когда я пытаюсь скомпилировать свою программу на C с помощью GCC, я получаю неопределенную ссылку на glfwInit()
. Во-первых, я попытался поместить glfw.dll в то же место, что и программа, которая, по-видимому, ничего не сделала. После этого я попытался удалить библиотеки glfw из каталога «lib» MinGW и заменить их на .dll, а также добавить #define GLFW_DLL
в начало моего файла .c (та же ошибка). Я также попытался изменить порядок компоновки, добавив -lopengl32 и -lgdi32, переименовав одну из статических библиотек на случай, если компилятор запутался, и т. д. Здесь ничего не работает, но я ранее устанавливал и разрабатывал с помощью SDL2 в такая же мода.
основной.с:
#include<stdio.h>
#include<GLFW/glfw3.h>
int main(int argc, char **argv) {
if (!glfwInit()) {
printf("Failed!");
return -1;
}
printf("Success!");
getch();
return 0;
}
Инструкции к компилятору:
gcc -std=c99 -o project.exe main.c -lglfw3 -lglfw3dll
Да, я пробовал добавить -L и указать каталог библиотек. К сожалению, та же ошибка.
Хорошо, я наконец решил проблему. Я следовал инструкции в этом видео: https://thewikihow.com/video_bIK95aWk-Bo . Суть видео в том, что вам нужно скачать CMake, а также версию GLFW, которую можно найти здесь: https://www.glfw.org/
Затем вам нужно нажать «Настроить» после установки пути источника и сборки. После этого нажмите «Создать». Затем вам нужно открыть командную строку и найти только что созданный MakeFile. Я использую Windows, а это значит, что мне нужно было использовать команду mingw32-make
. Файлы библиотеки успешно построены!
После этого я поместил созданные файлы .dll и .a в папку «lib» MinGW. Затем я скопировал .dll и поместил его в тот же каталог, что и мой исполняемый файл.
Вы пытались добавить -L.