2015-07-01 59 views
10

我正在嘗試使用Clion IDE編譯一個使用Qt庫的簡單程序,但我無法弄清楚如何配置CMakeLists.txt文件。 (我不熟悉CMake和工具鏈) 這是我目前的CMakeLists.txt文件:在Clion中使用Qt

cmake_minimum_required(VERSION 3.2) 
project(MyTest) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

set(SOURCE_FILES main.cpp) 
add_executable(MyTest ${SOURCE_FILES}) 

# Define sources and executable 
set(EXECUTABLE_NAME "MySFML") 
add_executable(${EXECUTABLE_NAME} main.cpp) 



# Detect and add SFML 
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) 
find_package(SFML 2 REQUIRED system window graphics network audio) 
if(SFML_FOUND) 
    include_directories(${SFML_INCLUDE_DIR}) 
    target_link_libraries(${EXECUTABLE_NAME} ${SFML_LIBRARIES}) 
endif() 

它配置爲使用SFML圖書館與「FindSFML.cmake」的文件,它工作正常。 (我已經從一些教程中複製了這些文件),現在我需要一些關於正確CMakeLists.txt配置的幫助來編譯使用Qt庫的程序(如果提供了這些文件和解釋,這會更有幫助)。


P.S:我目前的操作系統是manjaro 0.8.13和所有我能找到的解釋是在Windows環境下配置,所以我也無法執行這些教程。

+0

@coincoin你什麼意思通過調用cmake的..?我使用Clion構建並運行我的程序而不是CLI命令(如果這是你的意思) – kahrabian

+0

@coincoin這是我的代碼:[link](http://paste.ubuntu.com/11803793/),這是clion的輸出: [鏈接](http://paste.ubuntu.com/11803799/) – kahrabian

+2

[如何配置Qt框架的CLion IDE?]的可能的副本(http://stackoverflow.com/questions/30235175/how-to-configure -clion-ide-for-qt-framework) – BoshWash

回答

8

您的CMake項目文件缺少Qt包。你必須添加:

find_package(Qt5Core REQUIRED) 
find_package(Qt5Widgets REQUIRED) 
find_package(Qt5Gui REQUIRED) 

然後

qt5_use_modules(MyTest Core Widgets Gui) 
+0

謝謝你的回答,最後它工作正常!現在我的'CmakeLists.txt'看起來像這樣:[link](http://paste.ubuntu.com/11804067/) – kahrabian

+0

@thomas_b糾正我,如果我錯了,但如果cmake替換.pro文件,我如何爲我的項目添加資源? – Michael

+0

正如Qt的CMake手冊(http://doc.qt.io/qt-5/cmake-manual.html)所描述的那樣,這是通過'qt5_add_resources'命令完成的。擴展問題的源代碼,調用將如下所示:'qt5_add_resources(SOURCE_FILES my_resources.qrc)' – tomvodi

11

除了@ tomvodi的回答,您可以使用一個簡單的語法:

find_package(Qt5 REQUIRED COMPONENTS Core Widgets Gui)。 然後,你不叫qt5_use_modules而是使用標準的命令鏈接:

target_link_libraries(MyTest Qt5::Core Qt5::Widgets Qt5::Gui)