2016-10-24 12 views
0

Qtのソースをダウンロードし、-staticフラグを付けて/usr/local/Qt5_static/にコンパイルしました。私は空のプロジェクトを作成しました。Qt5とCMakeを静的にリンクする方法は?

cmake_minimum_required(VERSION 3.6) 
project(Splines) 

set(CMAKE_CXX_COMPILER "/usr/bin/clang++") 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wextra -pedantic -static -stdlib=libc++ -lc++abi -v") 
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") 
set(SOURCE_FILES main.cpp) 

set(CMAKE_AUTOMOC ON) 
set(CMAKE_INCLUDE_CURRENT_DIR ON) 

set(Qt5_DIR "/usr/local/Qt5_static/") 
find_package(Qt5Widgets) 

add_executable(Splines ${SOURCE_FILES}) 

target_link_libraries(Splines Qt5::Widgets) 

リンカエラーがあります。

/usr/bin/ld: attempted static link of dynamic object `/usr/lib/libQt5Widgets.so.5.7.0' 
clang-3.8: error: linker command failed with exit code 1 (use -v to see invocation) 

リンカーは、静的なlibの代わりに共有ライブラリをリンクしようとしました。私はコンパイルしました。私はCMakeLists.txtの他のバリエーションを試しましたが失敗しました。

Qtをcmakeと静的にリンクするにはどうすればいいですか? (私の悪い英語のため申し訳ありませんが)

答えて

0

CMAKE_CXX_FLAGSコンパイラフラグですが、target_link_librariesCMAKE_EXE_LINKER_FLAGSあるリンカのフラグを、使用しています。静的リンクの場合は、-staticリンカーフラグに追加する必要があります。

関連する問題