2012-04-23 5 views
1

Я хочу использовать несколько внешних библиотек в проекте: libpng и libvorbis. Теперь, в Linux, я могу с радостью построить их и просто добавить файл конфигурации в scons, чтобы разрешить дополнительные пути include/lib, если вы хотите построить их вне системы, включая путь.Внешние библиотеки в Visual Studio 2010

Однако МСВС 2010, кажется, немного разборчивее:

  • Я могу просто добавить путь к версии выпуска этих библиотек в VC++ каталогов на странице свойств пользователя, но это не будет работать для статической привязки (потому что отладочные версии необходимы для привязки к конфигурации отладки).
  • Я могу добавить абсолютный путь в проект, но это означает, что проект не переносится.
  • Я могу добавить каталог libpng (например), а затем поставить Debug\libpng.lib в вводе компоновщика, но он не может найти символ. Предположительно он предполагает, что это относительный путь из-за \.

Мое настоящее решение состоит в том, чтобы просто скопировать все необходимые библиотеки в каталог решений для текущего проекта; Я мог бы даже их жестко связать, но это кажется глупым.

Что я могу сделать, чтобы сохранить мой проект в переносном режиме, а также ссылки абсолютного include/lib пути на конфигурацию?

(Будучи в состоянии сознательно ставить пути в .suo или .user файлов было бы удивительным, например.)

ответ

1

Если вы хотите добавить относительные пути библиотек, предварить их «\» для запуска из базового каталога проекта;

".\Lib\Debug\libpng.lib" 

или ".. \" для ссылки на родительский каталог.

"..\Lib\Debug\libpng.lib" 

Обратите внимание, что если библиотеки находятся в Родитель родительского каталога справочника, то вы можете просто ЦЕПЬ «.. \» ссылки вместе:

"..\..\Lib\Debug\libpng.lib" 
+0

Я уже использовать относительные пути, я хочу знать, как делать абсолютные пути, без того, чтобы они были на основе каждого проекта. – Ricky26

+0

Вы можете установить абсолютные пути библиотеки в глобальных настройках Visual Studio, перейдя в «Инструменты -> Настройки -> Проекты и решения -> Каталоги VC++». Это, как оказалось, довольно распространенная практика для проектов, реализующих широко используемые SDK, которые могут быть установлены в разных местах на разных компьютерах. Это то, о чем вы говорите? Если так, я отвечу в качестве ответа. – BTownTKD

+0

Это было удалено с VS2010, оно также не позволяет для каталогов для каждой конфигурации, поэтому все равно не будет работать со статическим связыванием. – Ricky26

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