我目前正在尝试设置工具链,以便可以从 CLion 构建 AVR 项目。
我的出发点是这个,特别是 Blink 示例。问题在于,它与现有的用于 AVR 示例的 CMake 一起,都适用于基于 Linux 的系统。
我试过的是安装 WinAVR 来获取可执行文件。我修改了 CMakeList.txt,因此程序名称包含以下内容:
set(AVRCPP "C:/WinAVR-20100110/bin/avr-g++")
set(AVRC "C:/WinAVR-20100110/bin/avr-gcc")
set(AVRSTRIP "C:/WinAVR-20100110/bin/avr-strip")
set(OBJCOPY "C:/WinAVR-20100110/bin/avr-objcopy")
set(OBJDUMP "C:/WinAVR-20100110/bin/avr-objdump")
set(AVRSIZE "C:/WinAVR-20100110/bin/avr-size")
set(AVRDUDE "C:/WinAVR-20100110/bin/avrdude")
set(AVRAS "C:/WinAVR-20100110/bin/avr-as")
Run Code Online (Sandbox Code Playgroud)
在使用 Cygwin 环境时,CMake 可以毫无问题地找到我的编译器,但是当我尝试构建项目时,avr-gcc 正在以 Linux 格式传递参数。
C:/WinAVR-20100110/bin/avr-gcc.exe -o CMakeFiles/cmTryCompileExec420260872.dir/testCCompiler.c.obj -c /cygdrive/c/Users/Daniel/.clion10/system/cmake/generated/2eb381d5/2eb381d5/__default__/CMakeFiles/CMakeTmp/testCCompiler.c
avr-gcc.exe: /cygdrive/c/Users/Daniel/.clion10/system/cmake/generated/2eb381d5/2eb381d5/__default__/CMakeFiles/CMakeTmp/testCCompiler.c: No such file or directory
Run Code Online (Sandbox Code Playgroud)
有没有办法让 CMake 以它可以使用的格式传递 avr-gcc 参数?
作为参考,这是完整的输出:
Error:The C compiler "C:/WinAVR-20100110/bin/avr-gcc" is not able to compile a simple test program.
It fails with the following output: …Run Code Online (Sandbox Code Playgroud)