cmake:使用AVR编译器创建一个十六进制文件



我希望有人能帮助我:我试着在jenkins服务器中使用cmake插件来创建一个十六进制文件,但我不知道自己的错。

我还尝试运行这个网站的示例: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_croscompile.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,但我不知道如何使用它。我尝试作为生成器visualstudio10(指定用于交叉编译的工具链文件),但它没有生成makefile或hex文件。如果我选择MinGW Makefiles作为生成器,我会得到错误:C编译器"C:\WinAVR-20100110/bin/avr-gcc.exe"无法编译一个简单的测试程序。

我希望有人能帮我,谢谢!

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

SET(CMAKE_SYSTEM_NAME Generic)

相关内容

最新更新