Visual C ++说“LNK1104:无法打开文件'stlport_statix.lib'”

时间:2010-10-15 09:37:42

标签: visual-c++ stlport

尝试在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 lib”。构建STLPort的人没有构建该版本,因为我们不应该使用它。

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

1 个答案:

答案 0 :(得分: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)。