在Visual Studio 2005中生成使用其他DLL的DLL
Building DLLs that use other DLLs in Visual Studio 2005
我正试图在Visual Studio 2005中并行化我们的构建过程,以利用我们的多核硬件。为了稍微简化一些,我有两个DLL和一个应用程序。DLL A没有依赖项。DLL B使用DLL A中定义的某些函数。应用程序使用两者中定义的函数。
我认为我应该能够并行构建A和B,因为在链接应用程序之前不需要解析符号。然而,当我删除DLL B对A的项目依赖时,我会出现以下错误:
YFindReplaceWidget.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual unsigned long __thiscall CORBBaseComponent::GetRefCount(void)const " (__imp_?GetRefCount@CORBBaseComponent@@UBEKXZ)
有没有办法解决这些错误,这样我就可以并行地构建这些DLL?
那是。。。一种非常奇怪的思维模式。DLL只是具有不同扩展名的EXE,它们需要完整的链接信息才能构建。
只要你的构建是这样的链(app->b->a),它们就不能并行构建。
Microsoft在VS2008中正式引入了一个多处理器构建选项。它将允许构建为同一项目启动多个编译器。简单的解决方案就是升级到Visual Studio的最新版本。
如果您被困在VS2005上,那么它实际上也可以在那里使用,但没有得到官方支持。只需添加/MP作为额外的编译器选项。
http://blog.280z28.org/archives/2007/10/17/(建议您不要在构建服务器上使用它)
http://msdn.microsoft.com/en-us/library/bb385193.aspx
相关文章:
- 是否有其他方法将.dll文件从一个项目复制到我的启动项目中的可执行文件旁边
- 问题在具有依赖性时从其他路径上加载DLL的DLL
- LNK2019某些类函数,但不在其他类函数(DLL 中的模板类)上
- 从其他编程语言调用 c++ dll 类函数
- 尝试读取或写入受保护的内存.这通常表示其他内存已损坏.在C++Dll中
- 如何将opencv和其他dll文件链接到visual studio 2013的输出exe
- 必须在其他线程上调用 DLL 函数
- 如何构建 boost.log DLL,静态链接到其他所有内容 boost
- 将 DLL 放在其他目录中
- Visual C++如何从其他公司加载.DLL
- 从其他目录加载 dll 函数
- 将dll与c++项目中的其他输出文件分离
- 用std::vector从dll调用其他dll的C++
- 无法在其他计算机上注册C++MFC dll
- 如何在 c# asp.net 中为引用其他 dll 的一个类创建 dll
- C++-如何使显式导入的DLL函数可用于其他类
- 从其他编译器导入dll
- 错误LNK2019:由其他类组成的主类使用带有多个头和源的DLL的EXE
- DLL可以与其他编程语言一起使用吗?
- 如何生成 64 位.dll哪个 gcc 编译器或其他。无法在 AMD 64 位平台上加载 IA 32 位.dll