在同一个VS项目中拥有多个构建配置的正确且简单的一步一步是什么,其中解决方案还包含多个项目?这些项目将具有不同的构建配置。基本上,我正在寻找像Dll Debug,Dll Release,Static(library)Debug和Static(library)Release的项目A,项目B with Debug&发布构建.exe。
答案 0 :(得分:3)
这不是它的工作方式。如果您为库提供静态链接CRT或使用CRT的DLL版本的选项,那么您还必须在EXE项目上使用相同的选项。混合选项通常会产生大量的链接器错误。即使你设法避免它们,当.lib中的函数使用与EXE中的函数不同的内存分配器时,灾难也会在运行时发生。
使用“所有这些”方法毫无意义。只要你知道你只使用静态库并创建一个单片EXE blob,那么CRT的静态版本就有意义了。使部署程序更容易。如果你有一天在考虑使用DLL,那么只有CRT的DLL版本才有意义。
答案 1 :(得分:0)
实现这一目标的最简单方法是创建多个编译相同源的项目。您可以为所需的每个案例(DLL,Static Lib)创建项目。然后,您可以为这些项目配置多个配置,以便它们可以生成多个变体。
项目A(DLL)
项目B(LIB)
您可以使用相同的方法为Ansi与Unicode,x86与x64,单线程与多线程等生成不同的二进制文件。每个项目都包含相同的源文件集,并根据需要使用条件化代码块。然后,您可以将这样的内容添加到与库关联的头文件中,以便更容易链接到相应的版本中:
#ifdef _DEBUG
#ifdef _DLL
#pragma comment(lib, "MYLIBD.LIB")
#else
#pragma comment(lib, "MYLIBDS.LIB")
#endif
#else
#ifdef _DLL
#pragma comment(lib, "MYLIB.LIB")
#else
#pragma comment(lib, "MYLIBS.LIB")
#endif
#endif