0

尝试在 Visual Studio 2008 中链接我的 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 库”。构建 STLPort 的人没有构建那个版本,因为我们不应该使用它。

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

4

1 回答 1

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)。

于 2010-10-15T11:50:45.080 回答