2010-10-15 138 views
0

当试图链接我在Visual Studio 2008中的C++解决方案时,收到消息“LNK1104:无法打开文件'stlport_statix.lib'”。Visual C++说:“LNK1104:无法打开文件'stlport_statix.lib'”

我已经安装了STLport,并且在Tools->Options->Projects And Solutions->VC++ Directories->Library Files中设置了正确的路径。然而,STLport不提供名为stlport_statix.lib的文件,只有stlport_static.lib

Visual Studio有什么想法将结尾'c'与'x'交换?

请注意,这可能是一个非常简单的错误,因为我不熟悉Microsoft堆栈(来自Linux/gcc背景)。

编辑︰我已经找到'x'来自哪里,它意味着“动态RTL建立静态STLport lib”。构建STLPort的人不会构建该版本,因为我们不应该使用它。

EDIT2:我现在想弄清楚为什么Visual Studio是与/MD建设,即使项目设置为使用/MT下的“代码生成”。这似乎是问题的根源。

+0

你有一个名为“stlport_statix.lib”的文件吗? – kyndigs 2010-10-15 09:57:11

+0

不,我只有stlport_static.lib。 – knatten 2010-10-15 10:07:44

回答

0

问题解决。我在解决方案中使用了/MD而不是/MT,这是我忽略的一个项目。

详细解释:可以为动态链接或静态链接构建STLport。它也可以构建为静态链接,但是具有动态链接的运行时库。后者导致名为“stlport_statix.lib”的库,而正常的静态链接库称为“stlport_static.lib”。

当你使用STLport建设,_auto_link.h决定什么版本来链接,根据您是否使用/MD/MT

有关详细信息,请参见_auto_link.h第27-39行和第_detect_dll_or_lib.h第32-65行(假定STLport 5.2.1)。

相关问题