很多人都说Code Composer Studio无法用gcc编译,各种报错,balabala。之前参加比赛用msp430(虽然最后没用,比赛也重在参与了,2333),下了CCS10.1,发现确实无法用gcc编译,具体是怎么回事呢,通过报错信息,找到了解决方法。
通过报错信息发现是根本链接不上,编译不了,找到了CCS自动构建的makefile文件,发现了这么一段
# Tool invocations
msp430f5529test001gcc.out: $(OBJS) $(LD_SRCS) $(GEN_CMDS)
@echo 'Building target: "$@"'
@echo 'Invoking: GNU Linker'
"C:/Software/Develop/Code Composer Studio/ccs/tools/compiler/msp430-gcc-9.2.0.50_win64/bin/msp430-elf-gcc-9.2.0.exe" -mhwmult=f5series -Og -g -gdwarf-3 -gstrict-dwarf -Wall -mcode-region=none -mlarge -Wl,-Map,"msp430f5529test001gcc.map" -Wl,--gc-sections -L"C:/Software/Develop/Code Composer Studio/ccs/ccs_base/msp430/include_gcc" -mmcu=msp430f5529 -o"msp430f5529test001gcc.out" $(ORDERED_OBJS)
@echo 'Finished building target: "$@"'
@echo ' '
msp430f5529test001gcc.hex: $(EXE_OUTPUTS)
@echo 'Building files: $(strip $(EXE_OUTPUTS__QUOTED))'
@echo 'Invoking: GNU Objcopy Utility'
"C:/Software/Develop/Code Composer Studio/ccs/tools/compiler/msp430-gcc-9.2.0.50_win64/bin/msp430-elf-objcopy.exe" $(EXE_OUTPUTS__QUOTED) "msp430f5529test001gcc.hex"
@echo 'Finished building: $(strip $(EXE_OUTPUTS__QUOTED))'
@echo ' '
很显然,是直接用绝对地址调用了gcc工具链进行的编译,问题就出在这里————很多人喜欢用软件名称作为安装目录文件夹名称(我也喜欢),而这个CCS的名称Code Composer Studio名字中间带空格,还是两个,这导致了makefile运行的时候把空格作为分隔符识别了,完蛋。23333
文件名不要空格,从我做起。