是否可以在QT Creator中打开一个项目(由2个文件CMakeLists.txt和project.cpp创建),并像正常的QT Widgets项目(进行绘图等)一样使用它。如果是,我该怎么办? 当我正常打开QT Creator的CMakeLists.txt时,我无法使用QT的功能。我不想使用纯C ++模式。 感谢您的回答。
CMakeLists:
cmake_minimum_required(VERSION 2.8)
option(UHD_USE_STATIC_LIBS OFF)
set(BOOST_REQUIRED_COMPONENTS
program_options
system
thread
)
if(MSVC)
set(BOOST_ALL_DYN_LINK "${BOOST_ALL_DYN_LINK}" CACHE BOOL "boost enable dynamic linking")
if(BOOST_ALL_DYN_LINK)
add_definitions(-DBOOST_ALL_DYN_LINK) #setup boost auto-linking in msvc
else(BOOST_ALL_DYN_LINK)
set(BOOST_REQUIRED_COMPONENTS) #empty components list for static link
endif(BOOST_ALL_DYN_LINK)
endif(MSVC)
find_package(Boost "1.46" REQUIRED ${BOOST_REQUIRED_COMPONENTS})
if(CMAKE_VERSION VERSION_LESS "3.1")
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
set(CMAKE_CXX_FLAGS "--std=gnu++11 ${CMAKE_CXX_FLAGS}")
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
if("${IS_APPLE}" STREQUAL "")
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
else()
set(CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++ ${CMAKE_CXX_FLAGS}")
endif()
endif()
else()
set(CMAKE_CXX_STANDARD 11)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
set(CMAKE_EXE_LINKER_FLAGS "-lthr ${CMAKE_EXE_LINKER_FLAGS}")
set(CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}")
endif()
include_directories(
${Boost_INCLUDE_DIRS}
${UHD_INCLUDE_DIRS}
)
link_directories(${Boost_LIBRARY_DIRS})
add_executable(projekt projekt.cpp)
set(CMAKE_BUILD_TYPE "Release")
message(STATUS "******************************************************************************")
message(STATUS "* NOTE: When building your own app, you probably need all kinds of different ")
message(STATUS "* compiler flags. This is just an example, so it's unlikely these settings ")
message(STATUS "* exactly match what you require. Make sure to double-check compiler and ")
message(STATUS "* linker flags to make sure your specific requirements are included. ")
message(STATUS "******************************************************************************")
if(NOT UHD_USE_STATIC_LIBS)
message(STATUS "Linking against shared UHD library.")
target_link_libraries(projekt ${UHD_LIBRARIES} ${Boost_LIBRARIES})
else(NOT UHD_USE_STATIC_LIBS)
message(STATUS "Linking against static UHD library.")
target_link_libraries(projekt
)
endif(NOT UHD_USE_STATIC_LIBS)