好的,所以我正在尝试将一些项目转换为 DLL。这些都是 visual studio 2008 项目,并且都是用 C++ 编写的。
我们有 9 个不同的项目(都在 Visual Studio 2008 中的 1 个解决方案下)。例如:
RasterTools\
RasterDataset.h
RasterDataset.cpp
Point.h
Point.cpp
<... insert like 50 more cpp files ...>
CoreTools\
Image.h
Image.cpp
CoreUtilities.h
CoreUtilities.cpp
<... insert more ...>
<... insert 7 or more projects ...>
现在的问题是某些项目使用其他项目的类。比如Image.h使用了Point.h,CoreUtilities.h有一些处理Points的函数。当您有多个相互交织的项目时,构建 DLL 的正确方法是什么。
基本上我们想要的是:
CoreTools.dll
RasterTools.dll
<other projects.dll>
我了解如何通过宏处理 __declspec(dllexport) 和 dllimport。但是,当我尝试构建例如 CoreTools.dll 时,我会在使用该项目中未包含的类或功能的任何地方出现链接器错误。例如,在构建 coreTools.dll 时,我收到任何点类函数的链接器错误。
我该如何处理?
编辑
我试过了,基本上我注意到几乎所有的复选框都变灰了,因为它会导致循环依赖。 :(
最佳答案
如果您右键单击引发链接器错误的项目并选择“项目依赖项...”,您将看到解决方案中所有其他项目的列表。
选中您需要链接的 (DLL) 项目旁边的框,Visual Studio 将自动链接到它(并确保在客户端之前构建依赖项)。
关于c++ - 使用多个项目构建 DLL 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561424/