1

我在 CLion 中有一个 C++ 项目,我想用 cmake 进行交叉编译。Cmake 本身完全运行,并且 arm-linux 编译的二进制文件运行良好。但是现在我想要一个运行配置来执行此操作,但 Clion 不提供此配置,而不会尝试运行引发类似错误的应用程序

11:31   Error running Build: Cannot run program "D:\Data\projects\smart-home\cmake-build-debug\smart-home-server" (in directory "D:\Data\projects\smart-home\cmake-build-debug"): CreateProcess error=193, %1 ist keine zulässige Win32-Anwendung

这是我的 CMakeList.txt

SET(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_BUILD_TYPE Debug)

set(CMAKE_SYSROOT D:/Programme/SysGCC/arm-linux-gnueabihf/sysroot)
SET(CMAKE_FIND_ROOT_PATH D:/Programme/SysGCC/arm-linux-gnueabihf/sysroot)
SET(CMAKE_C_COMPILER D:/Programme/SysGCC/bin/arm-linux-gnueabihf-gcc-4.9.exe)
SET(CMAKE_CXX_COMPILER D:/Programme/SysGCC/bin/arm-linux-gnueabihf-g++.exe)
SET(make D:/Programme/SysGCC/bin/make.exe)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(libs ${CMAKE_SOURCE_DIR}/lib)

cmake_minimum_required(VERSION 3.0)
project(smart-home-server)

execute_process(COMMAND mysql_config --cflags OUTPUT_VARIABLE MYSQL_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND mysql_config --libs OUTPUT_VARIABLE MYSQL_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)

include_directories(lib/usr/include/mysql)
link_libraries(${libs}/libmysqlclient.so ${libs}/libwiringPi.so)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -g2 -std=gnu++11 -pthread")

set(SOURCE_FILES
        rfm69/rfm69.cpp
        rfm69/rfm69.h
        rfm69/rfm69registers.h
        rfm69/RfmHandler.cpp
        rfm69/RfmHandler.h
        tcp/Client.cpp
        tcp/Client.h
        tcp/Opcodes.h
        tcp/Packet.h
        tcp/PacketHandler.cpp
        tcp/PacketHandler.h
        tcp/PacketReader.h
        tcp/PacketWriter.h
        tcp/Server.cpp
        tcp/Server.h
        controls/Controls.h
        json.hpp
        main.cpp
        MySql.cpp
        MySql.h
        Pilight.cpp
        Pilight.h
        README.md
        Singleton.h
        Util.h
        controls/Control.h
        controls/Elro800.h
)

include_directories(.)
include_directories(rfm69)
include_directories(tcp)

add_executable(smart-home-server ${SOURCE_FILES})

这是我的 CLion 运行配置

<configuration default="false" name="Build" type="CMakeRunConfiguration" factoryName="Application" WORKING_DIR="" PASS_PARENT_ENVS_2="true" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="smart-home-server" RUN_TARGET_NAME="smart-home-server" EXPLICIT_BUILD_TARGET_NAME="all">
    <envs />
    <method />
</configuration>

有谁知道我如何创建一个运行配置来只执行 cmake?

提前谢谢

4

1 回答 1

4

使用“构建”操作而不是“运行”。

]

于 2017-04-08T10:55:25.207 回答