使用Qt进行程序开发时QtCreator总是不二之选。作为老牌IDE在提供了强大的功能同时也对Qt的支持做了许多优化。如果没有特别的原因你应该使用它。
然而一个顺手的工具将会极大得提升生产效率,而如果你之前使用别的工具进行开发,那么就要斟酌一下学习使用QtCreator的成本了。
所以我将介绍配置CLion(另一个强大的c++ IDE)作为Qt5的开发环境,在利用现有工具链的同时避免了安装另一个大型软件。
如何使用CLion配置Qt5开发环境其实就是说如何将.pro文件转换为CMakeLists.txt文件
示例:
#set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -Wall -fexec-charset=GBK”)
cmake_minimum_required(VERSION 3.13)
project(example)
# 指定c++标准的版本
set(CMAKE_CXX_STANDARD 14)
# 配合使用Tools-Resync with remote hosts 解决远程开发找不到头文件的问题
include_directories(SYSTEM "/foo/bar")
# 自动调用moc,uic,rcc处理qt的扩展部分
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
# 设置Qt5的cmake模块所在目录,如果不设置将使用系统提供的版本
# QT_DIR和QT_VERSION是指定了qt安装目录和版本的环境变量
# 如果你使用了系统的cmake,那么会优先使用系统提供模块,因为cmake会优先搜索CMAKE_SYSTEM_PREFIX_PATH
# 如果你不想让cmake优先搜索系统目录(会导致编译使用系统安装的qt而不是我们配置的),需要提示find_package命令
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} $ENV{QT_DIR}/$ENV{QT_VERSION}/gcc_64/lib/cmake)
# 找到对应的qt模块,名字为qmake中QT += <name>中的name首字母大写后加上Qt5前缀
# 例如core为QtCore,你也可以去${CMAKE_PREFIX_PATH}的目录中找到正确的模块名
# 如果不想使用系统qt,这样写(注意NO_DEFAULT_PATH参数,它会让find_package跳过系统目录的查找):
#find_package(Qt5Widgets REQUIRED NO_DEFAULT_PATH)
# 如果你想要使用系统自带的qt,这样写:
find_package(Qt5Core REQUIRED)
find_package(Qt5Sql REQUIRED)
# 引入第三方头文件
include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/include
)
# 链接第三方库文件
link_directories(./lib)
# 将当前目录的所有源文件添加进变量
#aux_source_directory(. DIRS_SRCS)
# 通常这样设置就可以,如果你的项目包含qrc文件,那么需要将它们单独添加进来
# 例如add_executable(example ${DIRS_SRCS} resources.qrc)
add_executable(example
main.cpp
conf/ConfigInfo.cpp
utils/redisutil/RedisConnectionPool.cpp
utils/redisutil/RedisClient.cpp
test/DbConnectionTestThread.cpp
utils/dbutil/DbConnectionPool.cpp
test/RedisConnectionTestThread.cpp
utils/httputil/HttpClient.cpp
utils/httputil/HttpServer.cpp
conf/configfile.qrc)
target_link_libraries(example
Qt5::Core
Qt5::Sql
hiredis
pthread)