2015-07-29 9 views
0

Я использую Visual Studio 2013 и использую nuget для установки «glew» и «freeglut». Я выполняю курс, и эти инструкции по установке:Изучение OpenGL с glew и freeglut; но есть проблема

http://in2gpu.com/2014/10/15/setting-up-opengl-with-visual-studio/

я запутаться по пути, но я внимательно прочитать инструкцию. В конце сборки моего простого проекта, я получил сообщение об ошибке:

1> LINK: фатальная ошибка LNK1104: не удается открыть файл «Зависимости \ freeglut.obj»

#include <iostream> 
#include "Dependencies\glew\glew.h" 
#include "Dependencies\freeglut\freeglut.h" 

int main(int argc, char **argv) 
{ 
    return 0; 
} 

Я прочитал другие сайты об установке библиотек, но я просто запутался. Любая помощь и углубленное обсуждение были бы очень полезными. Благодарю.

ответ

-1

К сожалению, я должен задать очевидный вопрос: является ли freeglut.lib, где он должен быть, и указали ли вы на правый каталог?

Ваша ошибка говорит о зависимостях \ freeglut.obj, но если вы следовали учебнику, freeglut должен находиться в Dependencies \ freeglut. Другая распространенная ошибка в Windows - это использование полного пути к файлу с пробелами (C: .... Мои документы ...), но не полный путь к файлу в кавычках. Этот линкер становится причиной этого.

EDIT: Я предполагаю, что меня отклонили, так как я не заметил более очевидной проблемы, связанной с тем, что ваш линкер ищет freeglut.obj, которого у вас нет. Убедитесь, что вы называете это freeglut.lib.

Концептуально, вот что происходит, и это может помочь вам устранить неполадки: Когда вы пишете файл cpp и скомпилируете его, он превращается в файл obj. Компилятору не нужно все знать. Вы можете объявить функцию, которая возвращает int, и принимает bool в качестве аргумента, и использовать его в вашем коде, и компилятор говорит «хорошо, если вы так говорите».

Возможно, у вашей программы будет несколько файлов cpp и, следовательно, несколько файлов obj. После компиляции файлы obj связаны между собой и образуют ваш исполняемый файл. Если что-то пойдет не так (здесь есть!), Это ошибка компоновщика. Компилятор говорит «хорошо, вы говорите, что используете эту функцию ... где это?»

Вы получили файлы lib. В этом случае они являются статическими библиотеками, по существу, контейнером для пакета obj-файлов, ничем не отличающимся от того, как вы сами написали все функции и классы freeglut и скомпилировали их. Компонент хочет связать их. Для кода, который вы пишете и компилируете, Visual Studio гарантирует, что все попадет в нужную папку и что оно выглядит в нужном месте. Для скомпилированных объектных файлов, идущих откуда-то еще? Он не знает, поэтому вам нужно сказать VS две вещи: в какую папку находятся библиотеки, и каковы имена файлов библиотеки. Тогда компоновщик знает, где искать, и что он ищет.

Где-то вдоль линии вы помещаете файлы в неположенное место или указываете VS неправильное местоположение или неправильные файлы или какую-то комбинацию. ИЛИ вы сделали что-то вроде пробелов в пути к файлу без кавычек. Другой распространенной ошибкой является смешивание разных платформ. x86 (т. е. 32 бит) и объектные файлы x64 различаются, и если ваш компоновщик ищет один тип, он не поймет другого. Ваша загрузка предоставила библиотеки для разных платформ, а VS позволяет вам выбрать целевую платформу. Убедитесь, что все одинаково.

+0

Хорошо, я просмотрел все, что я сделал, и у меня действительно есть компоновщик, и файлы правильные. НО, мне не хватает этого файла «freeglut.sln», который должен дать мне проекты для компиляции, что даст мне новый «freeglut.lib», который будет работать. И, кроме того, я нашел файл онлайн здесь: –

+0

https://github.com/coapp-packages/freeglut –

+0

Но когда я загружаю проект .sln, он говорит, что он несовместим, потому что у меня нет VS '12, поскольку я использую VS'13. Должен ли я отказаться от этого и искать другой способ изучения openGL? –

0

LINK: фатальная ошибка LNK1104: невозможно открыть файл 'Зависимости \ freeglut.obj '

Это не должно быть freeglut.obj, но freeglut.lib.

Кроме того, убедитесь, что вы правильно выполнили все шаги в разделе Now let’s prepare FreeGLUT в разделе учебника: они очень четко объяснили, как добавить каталоги библиотек поиска и вход компоновщика, но отчеты Visual Studio отсутствуют Dependencies\freeglut.obj - внимательно проверьте, что у вас есть в Свойствах проекта ->Linker ->Input ->Additional Dependencies.

 Смежные вопросы

  • Нет связанных вопросов^_^