【发布时间】:2015-12-01 12:59:53
【问题描述】:
使用以下 CMake 配置在 CLion 中启动一个新的 C 项目:
cmake_minimum_required(VERSION 3.3)
project(test)
include_directories("/usr/lib/avr/include")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
set(SOURCE_FILES main.c)
add_executable(alma ${SOURCE_FILES})
简单的main.c
#define F_CPU 1000000UL
#include <avr/io.h>
#include <avr/iom8.h>
#include <util/delay.h>
int main(void)
{
DDRD |= _BV(PD5)|_BV(PD6);
PORTD |= _BV(PD6);
while (1) {
PORTD ^= _BV(PD5)|_BV(PD6);
_delay_ms(500);
}
}
构建时抛出以下警告
警告:#warning“未定义设备类型”
我试过了(浏览了大量的谷歌结果)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmcu=atmega8")
哪个抛出
错误:无法识别的命令行选项“-mmcu=atmega8”
任何帮助都会非常非常感谢,因为我已经搜索了几个小时但没有任何结果......
【问题讨论】:
-
因此您传递了编译器无法识别的 -mmcu=atmega8 。这与命令行、CMake 和 CLion 无关。请相应地更新您的问题。您应该检查您是否真的使用了您认为正在使用的编译器。显然它不支持你的目标架构。
-
@Florian 非常感谢,这就是陷阱。有用! :) 真正的帮助总是比廉价的谈话更好(关于之前的评论)。
-
@thEth 很高兴我能帮上忙。这只是我自己使用 CMake 进行交叉编译的一个疯狂猜测,我承认,如果我是第一个对你的问题发表评论的人,我可能还会询问你想要实现的目标。关于你解决问题的方法,你喜欢answer it yourself吗?
-
@Florian 这可能是另一个问题 - 这将是我的 AVR mcu 的程序。一个新问题即将出现 - 如何使 CLion C 的 hex 可执行?尝试使用
xxd,但avrdude对输入感到愤怒(无效输入-1)。
标签: c command-line cmake avr