2012-04-23 80 views
1

我希望在项目中使用一些外部库:libpng和libvorbis。现在,在Linux上,我可以高兴地构建这些文件,只需将配置文件添加到scons以允许额外的include/lib路径,如果您想在系统包含路径之外构建它们。Visual Studio 2010中的外部库

然而,MSVS 2010似乎是有点挑剔:

  • 我可以再补充这些库到VC++的用户属性页上的目录的发行版本的路径,但是这是不行的用于静态链接(因为调试版本需要链接到调试配置)。
  • 我可以在项目中添加绝对路径,但这意味着该项目不可移植。
  • 我可以添加libpng目录(例如),然后将Debug\libpng.lib放在链接器输入中,但它找不到符号。据推测,这是因为\而导致的相对路径。

我目前的解决方案是将所有我需要的库复制到当前项目的解决方案目录中;我甚至可以把它们硬连接在一起,但这看起来很愚蠢。

我可以做些什么来保持我的项目便携,并参考绝对包括/ lib路径每配置

如果你想添加库的相对路径,与前面加上(如果能够故意放的路径中或名为.suo文件。用户将是真棒,例如。)

回答

1

“ \”从基础项目目录开始;

".\Lib\Debug\libpng.lib" 

或“.. \”来引用父目录。

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

需要注意的是,如果你的库位于父目录的父目录,那么你可以链中的“.. \”引用起来:

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

我已经使用相对路径,我想知道如何做绝对路径,而不是以每个项目为基础。 – Ricky26 2012-04-23 19:00:36

+0

通过导航到“工具 - >设置 - >项目和解决方案 - > VC++目录”,可以在Visual Studio全局设置中设置绝对库路径。 事实证明,对于实施可安装到不同计算机上不同位置的常用SDK的项目,这是相当普遍的做法。那是你在说什么?如果是这样,我会重新发布答案。 – BTownTKD 2012-04-24 00:43:47

+0

这与VS2010一起被删除,它也不允许每个配置目录,所以仍然不能用于静态链接。 – Ricky26 2012-04-24 17:08:15