多进程调用 VC7 编译器 CL 问题 Fetal Error C1033

prostar 2009-05-19 04:13:19
最近在做一个build tool,用于生成一些二进制的目标码。之前的做法是调用编译器cl来依次编译每一个源文件,这样做工作的正常。现在我们想加快build的速度,于是开多个cl的进程,想一次能够多编译几个文件,但是如此一来就出现了问题,编译器返回的信息如下:

E:\Code\Edk\Sample\Byosoft\Agent\dbgcomport.c(0) : fatal error C1033: cannot open program database 'e:\code\edk\sample\byosoft\agent\vc70.pdb'

看起来好像cl不能多进程同时调用一样?请问诸位大侠,有什么办法可以避免这个错误?
...全文
293 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2009-05-19
  • 打赏
  • 举报
回复
cl编译不同的工程,不要同时编译同一个工程,不然可能冲突了...
thenshesaid 2009-05-19
  • 打赏
  • 举报
回复
PS:楼主已经把自己公司名字都爆出来了。。。
thenshesaid 2009-05-19
  • 打赏
  • 举报
回复
看来你是编译同一个工程的时候试图打开同一个PDB失败

试试修改cl的/Fd开关,给每个cpp一个单独的pdb filename,但我不确定这样改会不会对link的时候生成最后的pdb产生影响
jameshooo 2009-05-19
  • 打赏
  • 举报
回复
试试取消预编译头选项,就是所有C或CPP文件都不使用预编译头,可能会涉及到某些头文件包含的修改。
goodname 2009-05-19
  • 打赏
  • 举报
回复
不同的进程是编译不同的工程吗?
prostar 2009-05-19
  • 打赏
  • 举报
回复
可能是我说的不清楚,我们开发的是一个构建工具,这个工具调用cl来做编译。现在想同时开几个进程来加快构建的速度,所以安装IncredBuild可能不行,因为我们要用自己写的。
doudouHuY 2009-05-19
  • 打赏
  • 举报
回复
装一个IncredBuild 分布式编译
goodname 2009-05-19
  • 打赏
  • 举报
回复
rebuild一下吧。

有人说需要关掉卡巴斯基,我没有试过。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧