2017-04-08 4 views
0

J'ai un projet C++ dans CLion que je veux compiler avec cmake. Cmake lui-même fonctionne complètement et le binaire compilé par arm-linux fonctionne très bien. Mais maintenant, je veux avoir une configuration d'exécution qui fait cela, mais Clion ne fournit pas sans essayer de lancer l'application qui renvoie une erreur commeConstruction de CLion sans exécution

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 

voici mon 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}) 

Et voici ma configuration d'exécution 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> 

Est-ce que quelqu'un sait comment je peux créer une configuration d'exécution pour exécuter uniquement cmake?

Thx à l'avance

Répondre

1

Utilisez l'action "Build" au lieu de "Run".

]

+0

Je ne peux pas utiliser la construction comme une étape préalable si ce ne serait pas utile. Je devrais le construire et ensuite commencer le débogage à distance supplémentaire. –