2017-12-19 14 views
0

QT 5.5ライブラリを使用するプロジェクトを構築しようとしています。 CMakeファイルを作成するには、cmake-guiを使用してライブラリにリンクしています。デフォルトでは、プロジェクトはQT 4.Xのファイルとディレクトリにリンクし、QT 5.5内の同じファイルとディレクトリを探しながらプロジェクトをリンクします、私はそれらのいくつかが存在しないことに注意します。 (印刷に従ってください)QT 5.5をcmake-guiとプロジェクトにリンクする

これは、make installコマンドディスプレイを使用しようと、あなたがファイルを構築することができますが、QT 4.XおよびQTに5.5

をリンクされたファイルがあることをここに見ることができますこれらのエラーは、QT 4.Xファイルに置き換えられたQT 5.5アーカイブがないために正確に発生すると考えられます。

これらは、私はそれが、これはこれ以上ありますような方法で不足しているファイルへのディレクトリをリンクするための方法である必要があります見始める私は

ここ

を解決しようとしているエラーですerrorsQT

の種類

私は手動で生成されたファイルを含んでいるのディレクトリを変更しようとしましたが、それはエラーの数を考えると、実現可能ないないようだgenerated.Is QT 5.5バージョンで欠落しているファイルを「置き換える」方法はありますか?

これは、このプロジェクトのために使用さCMakeLists.txtファイルです:

project(PacpusSensors) 
cmake_minimum_required(VERSION 2.8) 

# ======================================== 
# PacpusSensors version 
# ======================================== 
set(PacpusSensors_MAJOR_VERSION 0) 
set(PacpusSensors_MINOR_VERSION 1) 
set(PacpusSensors_PATCH_VERSION 1) 
set(PacpusSensors_VERSION 
    "${PacpusSensors_MAJOR_VERSION}.${PacpusSensors_MINOR_VERSION}.${PacpusSensors_PATCH_VERSION}") 

# ======================================== 
# Configure CMake 
# ======================================== 
set(PACPUS_ROOT "/home/marvsdd/PACPUS/export") 
if(NOT ${PACPUS_ROOT} STREQUAL "") 
    set(CMAKE_MODULE_PATH ${PACPUS_ROOT}/cmake) 
    string (REPLACE "\\" "/" CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) 
    message (STATUS "setting CMAKE_MODULE_PATH to: " ${CMAKE_MODULE_PATH}) 
elseif(NOT $ENV{PACPUS_ROOT} STREQUAL "") 
    set(PACPUS_ROOT $ENV{PACPUS_ROOT}) 
    set(CMAKE_MODULE_PATH $ENV{PACPUS_ROOT}/cmake) 
    string (REPLACE "\\" "/" CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) 
    message (STATUS "setting CMAKE_MODULE_PATH to: " ${CMAKE_MODULE_PATH}) 
    message (STATUS "PACPUS_ROOT is: " ${PACPUS_ROOT}) 
else() 
    message (FATAL_ERROR "Environment variable PACPUS_ROOT not set, please define it in your operating system or pass it as argument to the cmake command") 
endif() 

include(${CMAKE_MODULE_PATH}/PacpusUtilities.cmake) 
include(${CMAKE_MODULE_PATH}/PacpusConfiguration.cmake) 
include(${CMAKE_MODULE_PATH}/PacpusDependencies.cmake) 
include(${CMAKE_MODULE_PATH}/PacpusPlatforms.cmake) 

# ======================================== 
# Pre-configuration of the compiler 
# ======================================== 
find_package(Pacpus REQUIRED) 
# Includes directories 
if(PACPUS_FOUND) 
include_directories(
    ${PACPUS_DEPENDENCIES_INC} 
    ${PACPUS_INCLUDE_DIR} 
) 
# Compiler flags coming from PacpusDependencies and PacpusPlatforms 
add_definitions(${PACPUS_DEFINITIONS}) 
endif(PACPUS_FOUND) 


# ======================================== 
# Find dependencies 
# ======================================== 
find_package(Qt4 REQUIRED) 
if(QT4_FOUND) 
    set(QT_USE_QTNETWORK TRUE) 
    set(QT_USE_QTOPENGL TRUE) 
    set(QT_USE_QTXML TRUE) 
    include(${QT_USE_FILE}) 
    add_definitions(${QT_DEFINITIONS}) 
    add_definitions(-DQT_PLUGIN) 
endif(QT4_FOUND) 

include_directories(
    ${PACPUS_DEPENDENCIES_INC} 
    ${PACPUS_INCLUDE_DIR} 
    ${PACPUS_INCLUDE_HINT} 
    ${PACPUS_INCLUDE_HINT}/Pacpus 
    ./PACPUS/include 
) 

# ======================================== 
# Build the PacpusSensors' modules 
# ======================================== 
add_subdirectory(PacpusSocket) 
add_subdirectory(Sick) 

# ======================================== 
# Summary 
# ======================================== 
pacpus_info("") 
pacpus_info("=====================================================================") 
pacpus_info("Configuration for PacpusSensors ${PacpusSensors_VERSION}") 
pacpus_info("=====================================================================") 
pacpus_info("") 
pacpus_info(" Platform:") 
pacpus_info(" Host:" ${CMAKE_HOST_SYSTEM_NAME} ${CMAKE_HOST_SYSTEM_VERSION} ${CMAKE_HOST_SYSTEM_PROCESSOR}) 
if(CMAKE_CROSS_COMPILING) 
    pacpus_info(" Target:" ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}) 
endif() 
pacpus_info(" CMake:" ${CMAKE_VERSION}) 
pacpus_info(" CMake generator:" ${CMAKE_GENERATOR}) 
pacpus_info(" CMake build tool:" ${CMAKE_BUILD_TOOL}) 
if(MSVC) 
    pacpus_info(" MSVC:" ${MSVC_VERSION}) 
else() 
    pacpus_info(" Configuration:" ${CMAKE_BUILD_TYPE}) 
endif() 
pacpus_info("") 
pacpus_info(" Compiler:") 
pacpus_info(" C++ Compiler:" ${CMAKE_CXX_COMPILER}) 
pacpus_info(" C++ flags (release):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}) 
pacpus_info(" C++ flags (debug):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}) 
pacpus_info("") 
pacpus_info(" Pacpus:") 
pacpus_info(" PacpusFramework path:" ${PACPUS_ROOT}) 
pacpus_info(" Log4cxx logging enabled:" ${PACPUS_USE_LOG}) 
pacpus_info("") 
if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") 
    message(WARNING "The source directory is the same as build directory. \"make clean\" may damage the source tree") 
endif() 
+0

をチェックアウト - **についてのエラーメッセージはありませんファイルがありません**。しかし、 "QtでQt4とQt5のヘッダーファイルを混在させる可能性がありますトークンの前に2進演算子がない"の理由は、スタックオーバーフロー[ルール](https:// stackoverflow。com/help/on-topic)、エラーメッセージは**画像としてではなく**テキスト**として質問投稿に含める必要があります。 – Tsyvarev

+0

あなたのcmakeファイルは何ですか? – Adam

+0

だからTsyvarevは、私が端末にアクセスした時点で、エラーをテキストとして保存できませんでした。私は再びエラーが発生することはできませんが、そのために投稿が削除されないことを願っています。それに加えて、私はこのプロジェクトを間違ってビルドしていると信じています。しかし、私がアクセスしているQT 5.5にファイルがないと仮定することはできますか?その場合、私は元のファイルを提供した人にこの問題を関連付けるよう連絡します。 ところで、* qmake -v *を使うと、私は_version 4.8.X_を取得します。 –

答えて

0

私が見る最初の事はQt4版とQt5がここに混入されていることです。両方をインストールしても問題ありませんが、正しいものを使用してください。私はあなたがQt5を望んでいると仮定しています。

Qt5にリンクの簡単な例は次のようになります。パッケージには、QTが見つからなかった場合、それはエラーで失敗します意味REQUIREDあるので、あなたはif(Qt5_FOUND)を必要としない

find_package(Qt5 REQUIRED Network OpenGL Xml) #Qt5Core is implicit 
target_link_libraries(MyApplication Qt5::Network Qt5::OpenGL Qt5::Xml) 

CMakeLists.txtには、ターゲットが定義されていません。通常は、add_executable,add_libraryまたはadd_custom_target cmake関数を使用します。つまり、ターゲットはおそらくサブディレクトリに定義されています。サブディレクトリ内の適切なCMakeLists.txtを見つけ、そこにtarget_link_librariesコマンドを使用します。このコマンドは正しいヘッダーを追加し、適切なリンクを行います。 Qtは、ヘッダのみだった場合は、グローバルinclude_directories()add_definitions()を使用するとうまくいく

ていますが、Qtのにアプリケーションをリンクする必要があるとしていることから、あなたが実際にあなたの溶液中のダウンtarget_link_libraries()より深くを使用する必要があります。詳細については

、 `私はこれらのエラーが原因QT 4.Xのfiles.`に置き換えQT 5.5アーカイブの不足のため、正確に起こると仮定しQt's documentation

関連する問題