是否可以使用Visual Studio 2013 Community Edition创建静态库C ++?

时间:2015-04-09 12:30:14

标签: c++ visual-studio

我有一个C / C ++ Visual Studio 2013社区版项目,该项目被定义为生成DLL,并且我对"未定义的符号"有很多痛苦。我想在另一个项目中使用它,所以我决定看看如果我改变了项目设置会给它带来什么,这样它就会生成一个静态库。

所以在项目的属性窗口中我去了

配置属性>一般>项目默认值>配置类型

并将配置类型设置为静态库 目标扩展名为 .lib

当我进行重建时,仍然在我的Release文件夹中获取一个新的dll文件,以及一个lib,并且DLL文件比lib文件大得多。这使得lib文件看起来像" export lib"文件,看起来没有任何改变。 如果我停止并重新启动Visual Studio,这仍然会发生。

我是否遗漏了某些内容,或者这看起来像是一个错误?

2 个答案:

答案 0 :(得分:1)

Configuration Properties - C/C++ - Runtime LibraryMulti-threaded (/MT) 更改为Release配置,将{strong> Multi-threaded Debug (/MTd) 更改为Debug配置。

Screenshot of Settings

此外,检查Configuration Properties - General - General - Target extension设置为 .lib

检查所有配置的设置(ReleaseDebug,如果您使用它们)。

答案 1 :(得分:0)

为什么要更改项目类型?如果需要DLL,请构建DLL。发布DLL编译期间收到的确切错误。也许你错过了一些dllexport / dllimport declspecs。

关于.lib:您确定,在构建期间生成了该DLL吗?也许它是以前(DLL)配置的输出?您是否尝试使用此.lib编译测试应用?也许它是有效的并且编译得恰到好处?

另一个问题:您是否在项目类型更改后从功能签名中删除了所有dclspec?构建静态库时,它们都不适用。