尝试在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
。这似乎是问题的根源。
答案 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)。