cmake:使用AVR编译器创建一个hex文件

时间:2014-10-30 14:51:46

标签: gcc jenkins makefile cmake

我希望有人能帮助我: 我尝试在jenkins服务器中使用cmake插件来创建一个hex文件,但我不知道我的错。

我也尝试运行此站点的示例:http://robot-develop.org/archives/2952但如果我使用“make”命令,则会收到以下错误消息:  make:***没有指定目标,也没有找到makefile。停止

这是我的代码:

的CMakeLists.txt:

cmake_minimum_required (VERSION 2.6.0)
INCLUDE("C:/Users/name/Desktop/example/Code/test_crosscompile.cmake")
INCLUDE("C:/Users/name/Desktop/example/Code/macro.cmake")
project (Code)
MESSAGE(STATUS "\n -------------------------------->Creating Test-Projekt...")
IF( NOT CMAKE_BUILD_TYPE )
SET( CMAKE_BUILD_TYPE Release ... FORCE )
ENDIF()
SET(MAIN_FILE
    class.c)
# add the executable
add_executable(Code ${MAIN_FILE})
#makro
AVR_CREATE_HEX(class)

makro.cmake:

# create avr hex
MACRO(AVR_CREATE_HEX name)
ADD_CUSTOM_COMMAND(TARGET ${name} POST_BUILD COMMAND avr-objcopy ARGS -O ihex -R.eeprom ${name}     "C:/Users/name/Desktop/example/Code/class.hex")
MESSAGE(STATUS "\n ----------JONAS---------------------->Macro")
ENDMACRO(AVR_CREATE_HEX)

test_crosscompile.cmake:

SET(CMAKE_SYSTEM_NAME "Windows")
SET(CMAKE_C_COMPILER avr-gcc)
SET(CMAKE_CXX_COMPILER avr-g++)
SET(CSTANDARD "-std=gnu99")
SET(CDEBUG "-gstabs")
SET(CWARN "-Wall -Wstrict-prototypes")
SET(CTUNING "-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums")
SET(COPT "-Os")
SET(CMCU "-mmcu=atmega32")
SET(CDEFS "-DF_CPU=12000000UL")
SET(CFLAGS "${CMCU} ${CDEBUG} ${CDEFS} ${CINCS} ${COPT} ${CWARN} ${CSTANDARD} ${CEXTRA}")
SET(CXXFLAGS "${CMCU} ${CDEFS} ${CINCS} ${COPT}")
SET(CMAKE_C_FLAGS  ${CFLAGS})
SET(CMAKE_CXX_FLAGS ${CXXFLAGS})

我使用cmake GUI,但我不知道如何使用它。 我尝试作为生成器visual studio 10(指定工具链文件进行交叉编译),但它不生成makefile或hex文件。 如果我选择MinGW Makefiles作为生成器,我会收到错误: C编译器“C:/WinAVR-20100110/bin/avr-gcc.exe”无法编译   一个简单的测试程序。

我希望有人可以帮助我,谢谢!

1 个答案:

答案 0 :(得分:0)

您已将CMAKE_SYSTEM_NAME设置为Windows,您需要将其设置为通用以启用交叉编译,例如:

SET(CMAKE_SYSTEM_NAME Generic)