Я пытаюсь сделать очень простую игру, используя OpenGL и GLFW. Я получил свой текущий код для компиляции без проблем в Ubuntu, но когда я пробую его в Windows, я получаю всевозможные неразрешенные внешние ошибки.
Я включил как в мои, так main.cppи в мои game.hфайлы:
#include<GLFW/glfw3.h>
Я пробовал использовать:
#define GLFW_DLL
#include<GLFW/glfw3.h>
а затем ссылка glfwdll.libвместо glfw3.lib, и это решило некоторые ошибки, но не все из них. В любом случае, я использую статическую библиотеку в Ubuntu, поэтому я хочу использовать ее и в Windows.
Изучив его, я попытался включить User32.libи kernel32.libудалить библиотеки по умолчанию (используя Zl) и кучу других вещей, которые я не могу вспомнить (но они не работали).
Моя текущая команда компиляции выглядит так:
@echo off
cl /Zl /MT game.cpp /I C:\dev\include /link "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64\User32.lib" "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64\kernel32.lib" C:\dev\lib\glfw3.lib C:\dev\lib\OpenGL32.lib
cl /Zl main.cpp /I C:\dev\include /link C:\dev\lib\glfw3.lib C:\Users\Daniel\projects\game\game.obj C:\dev\lib\OpenGL32.lib "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64\User32.lib" "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64\kernel32.lib"
При этом объектный файл компилируется без проблем, но с основным файлом я продолжаю получать неразрешенные внешние ошибки для всех функций glfw и openGl (независимо от того, использовал я их или нет) в моем объектном файле, и они из объектного файла и файл glfw.lib.
Что меня действительно смущает в этом, так это то, что файл объекта моего игрового класса компилируется без каких-либо проблем, но затем возникают ошибки, когда я связываю его.
Кто-нибудь знает, как это скомпилировать?
Решение проблемы
Я изучал это некоторое время и нашел кого-то, кто сказал, что это работает, если вы используете 32-битные двоичные файлы. Я использовал 64-битные двоичные файлы, когда у меня возникла эта проблема. Я загрузил 32-битные двоичные файлы и попробовал их теми же методами, и они скомпилировались без проблем.
Я понятия не имею, почему это так, но для тех, у кого возникла моя проблема, 32-битные двоичные файлы работали.
Комментариев нет:
Отправить комментарий