Qt5,MSVC2010每次都重建,在“DLL-link-fail”上删除* .obj

时间:2013-02-09 13:44:40

标签: c++ visual-studio qt build

我使用QMake来生成*.vcproj(来自*.pro)来创建将C ++类暴露给QML的DLL(Qt5.0.1 / MSVC2010)。 DLL工作。

但是,我有两个问题(可能是相关的):

  1. 当我“构建”时,它总是重新编译DLL中的所有内容。 (它永远不会“最新”。)
  2. 如果我收到“link-fail”(例如,某些输入lib没有定义所需的函数),MSVC将删除所有*.obj和其他中间文件,需要下一步构建(不必要地)重建那些中间体。 (“链接成功”将保留中间*.obj文件,但是下一个版本将强制它们重新生成。)这意味着我永远不能执行“仅限项目=>仅链接” 当我修复“input-static-lib”时。
  3. 这两个看起来都很奇怪。而且,他们让我伤心。

    请注意,由于我每次“重新生成”.vcproj,因此磁盘上不存在“项目中的文件”(其他人认为这是始终触发重建的原因) )。

    我已经尝试过“愚蠢的东西”,比如重新安装服务包,清理构建,手动删除所有中间产品/工件,重启等等。

    从网络搜索(大量阅读数周来解决此问题),这可能与:

    有关
    • 每个DLL都有自己的“intermedate-OBJs”目录,但它们都写入.dll/.lib的相同(共享调试) - “输出”文件夹。 (那应该没事,对吧?)

    没有“正确修复”(MSVC意识到事情是最新的),是否有一个解决方法,我可以抑制删除中间文件,所以我可以后来迫使我只是“重新链接”,当我知道时,事情应该没问题?目前,我不能“Project Only => Link Only”因为中间体被删除了。 (如何阻止MSVC删除.obj个文件?)

0 个答案:

没有答案