Win10下CCS v5.2.1编译错误Fatal error: could not open source file问题记录
1.问题现象
作者在Win 10系统中使用CCS v5.2.1进行DSP C6678开发,由于更换了新的电脑,所以重新配置了开发环境,但是编译出现错误。输出如下:
**** Build of configuration Debug for project D0 ****
C:\ti\ccsv5\utils\bin\gmake -k all
'Building file: ../D0.cfg'
'Invoking: XDCtools'
"C:/ti/xdctools_3_23_04_60/xs" --xdcpath="C:/ti/bios_6_33_06_50/packages;C:/ti/mcsdk_2_01_01_04/demos;C:/ti/ccsv5/ccs_base;C:/ti/ndk_2_21_01_38/packages;C:/ti/ccsv5/ccs_base;E:/Projects/MatrixTelescopes/pdk_C6678_1_1_1_4/packages;E:/Projects/MatrixTelescopes/bsp/configure/platform;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C66 -p My_C6678_Platform -r debug -c "C:/Program Files (x86)/Texas Instruments/C6000 Code Generation Tools 7.4.1" "../D0.cfg"
making package.mak (because of package.bld) ...
generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
configuring D0.xe66 from package/cfg/D0_pe66.cfg ...
cle66 package/cfg/D0_pe66.c ...
Fatal error: could not open source file "Instruments/C6000"
1 fatal error detected in the compilation of "Instruments/C6000".
Compilation terminated.
>> Compilation failure
gmake.exe: *** [package/cfg/D0_pe66.oe66] Error 1
js: "C:/ti/xdctools_3_23_04_60/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
gmake: *** [configPkg/compiler.opt] Error 1
gmake: Target `all' not remade because of errors.
**** Build Finished ****
2.问题原因
作者的开发环境需要安装v7.4.1版本的编译器,其默认安装路径(C:\Program Files (x86)\Texas Instruments\C6000 Code Generation Tools 7.4.1)中有空格,导致编译指令执行时将文件路径截断(错误提示为Fatal error: could not open source file “Instruments/C6000”,但实际上"Instruments/C6000"并不是一个文件,只是编译器路径的一部分),所以出现该问题。比较奇怪的是,作者旧的电脑也是Win 10系统,而且是相同的版本,却没有这个问题。具体原因可以参考TI社区里的讨论:https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/89788/grace-fatal-error-could-not-open-source-file-code。
3.解决方法
作者安装的v7.4.1版本编译器的默认安装路径为"C:\Program Files (x86)\Texas Instruments\C6000 Code Generation Tools 7.4.1",将该目录下所有文件移动到一个没有空格的路径即可,比如作者将其移动到了"C:\ti\ccsv5\tools\compiler\c6000_7.4.1"。注意:在更改了编译器的路径后,需要重新让CCS找到编译器(可以在CCS中点击菜单"Window-Preferences-Add"或者"Window-Preferences-Refresh")。
4.参考资料
TI社区里这个问题的讨论如下: