【问题标题】:C++ Avoiding or managing a circular project dependency in MSVCC++ 在 MSVC 中避免或管理循环项目依赖
【发布时间】:2014-09-11 18:24:58
【问题描述】:

我正在努力使用更多的插件系统来实现我的应用程序。

这导致我拥有我的主应用程序 EXE(或 DLL,但我认为不需要),它导出核心功能的所有符号。

然后我有插件 DLL,只需要导出一个简单的 IPlugin* createPlugin();,这样插件就可以在运行时动态加载,并链接到主应用程序的实用程序和类方法(我不打算将它们全部包装在虚拟接口通过 IPlugin 工作,无论如何,内联确实有好处)。

正确构建这个很简单,构建应用程序以获取导入库,然后构建插件。

但是我想解决的问题很简单,如果我在 MSVC IDE 中并将应用程序作为启动项目并运行它(“开始 [不] 调试”),我想确保任何插件项目都会首先完全构建(只是为了避免最终导致运行旧代码的开发错误)。

【问题讨论】:

  • IIRC 你右击解决方案并进入项目依赖窗口。有一个列表显示解决方案中的所有项目,并允许您指定哪些项目取决于什么。
  • 您的标题完全具有误导性。您的问题描述中没有循环依赖。
  • @Qix 当然这是基本的解决方案,但是如果您尝试过,您会知道 MSVC 明确禁止循环项目依赖。 @D Drmmr 如果只是运行而不按构建解决方案按钮,则在 IDE 项目案例中,如果您有更好的标题,请随时编辑/建议它...

标签: c++ visual-c++ project projects-and-solutions


【解决方案1】:

您可以将启动项目设置为依赖于所有其他项目的伪项目,并将项目配置中的“可调试的可执行文件”设置为主应用程序的输出。

【讨论】:

  • 这听起来不错。我确实考虑过制作一个启动器应用程序,但我认为至少在我有一个启动器 exe 的目的之前这样做会更好。
【解决方案2】:

Tools -> Options -> Projects and Solutions -> Build and Run -> (取消选中)仅在 Run 上构建启动项目和依赖项。

【讨论】:

  • 早上试试。
猜你喜欢
  • 2013-02-06
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-10
  • 1970-01-01
  • 2023-03-11
相关资源
最近更新 更多