Привет: В Visual Studio 2012 Professional, обновление 4, я могу легко создать новый проект OpenGL, создав новый проект Visual C++ (используя пустой шаблон) и перейдя в пакет NuGet Консоль управления и ввод: (. коллекторная-только математическая библиотека)Ссылка на библиотеки NuGet в Visual Studio 2013
Install-Package freeglut
Install-Package glew
Install-Package glm
Чтобы захватить библиотеки для freeglut, GLEW и GLM
затем я могу создать простой пример с использованием этих библиотек: (full example)
#include <GL/freeglut.h>
#include <GL/glew.h>
#include <glm/glm.hpp>
int main(int argc, char *argv[]) {
...
}
И без дальнейшей настройки я могу нажать большую зеленую строчку, и все компилирует, связывает и запускает (нахождение распространяемых DLL в пакетах NuGet) и отлично работает.
В Visual Studio 2013, тот же подход не работает: VS2013 жалуется, что не может найти freeglut.lib:
LINK: фатальный LNK1104 об ошибке: Не удается открыть файл 'freeglut.lib'
Я могу получить проект для компиляции, если я вручную отредактирую путь к библиотеке и скопирую библиотеки DLL в выходной файл сборки, но это кажется очень менее удобным.
Интересно, что даже без установки или изменения чего-либо Visual Studio кажется достаточно умным, чтобы знать, что ищет freeglut.lib, но, похоже, он не знает, где его найти.
Является ли это проблемой для каждого пакета или VS2013 что-то изменил в отношении того, как Visual Studio обрабатывает пакеты NuGet?
Попытка отладить это, посмотрев флаги компилятора в терминале, чтобы выявить любые различия, но 2012 и 2013 годы практически идентичны - помимо ссылок на vc110.pcb по сравнению с vc120.pcb для отладки символов. Я действительно не могу найти причин, по которым среда 2013 года не должна работать ... –
Глядя на теоретический компоновщик, CLI выбирает в 2012 и 2013 годах по сравнению с фактическим результатом, я обнаружил, что они точно идентичны *, кроме * 2012 компоновщик волшебным образом вставляет .lib-файлы. Я не могу найти разницу в настройках для этого: http://rifers.org/paste/show/2674 –