Visual Studio:静态库的静态链接
Visual Studio: Static Link to Static Library
我在Visual Studio中创建了一个静态库(其中没有使用mfc),并希望在静态链接的mfc项目(实际上是com dll)中与它链接。
当链接mfc-lib
时,我得到一堆消息symbol is already defined
。这是因为我链接了两次标准C++库(一次在静态库中,另一次在mfc项目中)。
我该如何修复它?/FORCE:MULTIPLE
有一个变通方法,但我认为这是一个糟糕的决定。
将静态库链接到DLL或EXE项目时,需要注意所有项目都已编译为使用相同的运行库。因此,请将所有项目设置为相同的"MFC的使用",也设置为同一个"运行库"。如果不这样做,则一个项目可能已被编译为从标准CRT获取fopen函数,而另一个项目则可能已被编辑为从MFC获取fopen函数。混合这些对链接器来说是个问题,因为他不知道使用哪个运行时(在本例中为:哪个fopen)。
将DLL或EXE项目链接到另一个DLL项目时,这不是问题。您可以有一个不使用MFC的DLL,并将MFC EXE链接到该DLL。
如果您有一个在不同项目中经常使用的util库,那么您可能会考虑设置不同的构建设置,以便在DEBUG和RELEASE中以及使用和不使用MFC时构建库。然后在EXE项目中,您可以选择与项目设置匹配的库二进制文件。
相关文章:
- 基于boost的程序的静态链接——zlib问题
- 使用gcc从静态链接的文件中查找可选符号
- 使用转换器提升 Python 问题 - 静态链接
- C++实用程序::转换在静态链接库中不起作用
- 将源中的 GLEW 与 cmake 静态链接
- 在发布模式下启动使用库的静态链接编译的应用程序时出错
- libavdevice 和 x11 的静态链接库应该以什么顺序链接?
- 静态链接启用 PIC 的库时出现链接器 PIC 错误
- 静态链接库时,收到链接器错误:找不到 -lgcc_s
- 静态链接 glibc & boost_python36 for Python extension
- 我可以在C++中配置静态链接吗?
- 协议缓冲区的静态链接会导致与现有符号冲突
- C++标准是否定义了结构中成员函数的函数内定义是否必须具有静态链接?
- 静态链接 Visual Studio dll 到动态链接的 sfml 项目
- 我可以加载与库静态链接的 dll 吗?
- 静态链接MSVC库,动态链接Qt
- C++:找不到静态链接
- OpenSSL AES仅适用于某些计算机,即使具有静态链接也是如此
- CURL 静态链接未解析的外部符号
- 如何强制Windows.h在Visual Studio中静态链接而不是动态链接?