![]() |
1
3
这不是它的工作方式。如果给库提供静态链接CRT或使用CRT的DLL版本的选项,那么在EXE项目上也必须有相同的选项。混合使用这些选项通常会产生大量链接器错误。即使您设法避免它们,当.lib中的函数使用与EXE中的函数不同的内存分配器时,灾难也会在运行时发生。 “全部使用”的方法意义不大。只要你知道你将只使用静态库和创建一个单一的EXeblob,那么静态版本的CRT就有意义了。使部署程序更容易。如果你打算某天使用DLL,那么只有CRT的DLL版本才有意义。 |
![]() |
2
0
实现这一点的最简单方法是创建多个编译相同源代码的项目。你可以为你想要的每种情况都有项目(DLL,静态库)。然后,您可以为这些项目配置多个配置,以便它们可以生成多个变体。 项目A(DLL)
项目B(LIB)
您可以使用相同的方法为Ansi与Unicode、x86与x64、单线程与多线程等生成不同的二进制文件。每个项目都包含相同的源文件集,并根据需要使用条件化代码块。然后,您可以将类似这样的内容添加到与库关联的头文件中,以便于链接到相应的版本:
|