gpt4 book ai didi

c++ - Visual Studio : Static Link to Static Library

转载 作者:太空宇宙 更新时间:2023-11-04 14:13:56 24 4
gpt4 key购买 nike

我在 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。

如果您有一个在不同项目中经常使用的实用程序库,那么您可以考虑设置不同的build设置,以便您可以在 DEBUG 和 RELEASE 中以及使用和不使用 MFC 来构建您的库。然后在您的 EXE 项目中,您可以选择与您的项目设置匹配的库二进制文件。

关于c++ - Visual Studio : Static Link to Static Library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12706269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com