常见问题
如果您有问题但在这里找不到,请给我们发送电子邮件。
我一直收到错误信息"src\main.cpp: fatal error C1041: cannot open program database 'C:\Development\Project.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS" 。
当编译器生成的 .PDB 文件(C/C++ -> Output Files -> Program Database File Name) 和链接器生成的 .PDB 文件(Linker -> Debugging -> Generate Program Database File) 都设置为同一输出文件时,就会发生这种情况。在这种情况下,调试器会在调试期间锁定 .PDB 文件,而编译器则会在编译时尝试写入同一文件。
请注意,编译器生成的 .PDB 文件是一个中间文件,而不是编译工件。因此,最好不要触动相应的编译器选项。此外,有报告称,在编译器和链接器都写入同一个 .PDB 文件的情况下,大型项目的链接时间(不使用 Live++ 的增量和完全构建)最多会延长 4 倍,因此建议编译器和链接器使用不同的 PDB 文件。
编译器不断报告"src\main.cpp: fatal error C1041: cannot open program database 'C:\Development\vc141.idb'; if multiple CL.EXE write to the same .PDB file, please use /FS" 。
启用本机编辑和继续(Edit and Continue)并使用'C/C++ -> General -> Debug Information Format -> Program Database for Edit and Continue (/ZI)' 编译器选项时会出现这种情况。请注意,调试信息格式必须设置为'C7 compatible (/Z7)' 或 'Program Database (/Zi)' 。
编译器会抛出几个cl : Command line warning D9007 : '/external:I' requires '/external:W'; option ignored 警告,然后是丢失包含。
如何解决这个问题?
您很可能遇到了Visual Studio 工具链的问题。
我使用 INCLUDE 环境变量指定包含路径,但 Live++ 似乎忽略了这些路径。
这是怎么回事?
你很可能遇到了Visual Studio 工具链的问题。
Live++ 报告"函数 'Bar' 中位于 0xF00 的指令过短,无法打补丁。对此函数的更改将无法察觉。"。
我该怎么办?
这很可能是翻译单元未使用正确的编译器设置构建造成的。
Live++ 报告"无法确定工具链 'Foo' 的 vcvars*.bat 环境"。
我需要更改什么?
使用 Visual Studio 编译器或链接器时,需要调用 vcvars*.bat 文件,以便为后续编译设置工具链环境。只要默认安装目录的相对路径保持不变,Live++ 会自动检测用于构建支持 Live++ 应用程序的工具链,并找到相应的 vcvars*.bat 文件。
在使用自定义工具链或构建系统时,编译器(cl.exe)和链接器(link.exe)通常保留在非默认的相对路径结构中,这使得查找正确的 vcvars*.bat 文件变得更加困难。在这种情况下,Live++ 希望以下任何文件与调用的编译器或链接器位于同一目录:
- vcvars64.bat
- vcvarsamd64_x86.bat
- vcvarsx86_amd64.bat
- vcvars32.bat
请注意,您可以提供自己的文件来设置编译器环境,无需复制 Visual Studio 的文件,只要相关文件命名正确即可。
当尝试重新编译文件时,Live++ 无法启动编译器。
您的设置是否使用分布式/远程编译?如果是,请确保设置所需的首选项。
Live++ 无法找到链接器环境。
我需要配置哪个设置?
确保生成完整的 PDB(如使用/DEBUG:FULL),而不是部分 PDB(如使用/DEBUG:FASTLINK )。
按快捷键时,Live++ 什么也不做。
我缺少了什么?
首先,通过调用相应的 API 函数之一,确保已创建 Live++ Agent,并为相关模块(.EXE 或 .DLL)启用了 Live++。
其次,记得在按下快捷键前保存更改。如果 Live++ 仍然没有任何反应,说明它无法检测到哪些翻译单元是模块的一部分。在这种情况下,请检查编译器和链接器的设置是否正确。
第三,确保 Live++ 能找到其工作所需的所有 .PDB、.OBJ、.CPP 和 .H 文件。
如果问题仍然存在,而且你无法找出 Live++ 无法在你的设置下运行的原因,请告诉我们。
我尝试了所有方法,但似乎无法让 Live++ 与我的设置一起工作。
如何报告此问题?
请联系我们,说明您遇到的问题,并附上 Broker、Bridge 和 Agent 日志。
在 Broker 主菜单中选择 "工具"->"显示 Broker 日志文件...",即可查看 Broker 日志文件。
要查看 Bridge 和 Agent 日志文件,请在进程视图的上下文菜单中选择显示所选本地进程的日志文件...。