簡體   English   中英

如何在Qion中將Qt5與CMake靜態鏈接?

[英]How to statically link Qt5 with CMake in CLion?

我下載了Qt的源代碼並將其與-static標志一起-static/usr/local/Qt5_static/ 我創建了空項目並更改了CMakeLists.txt如下所示:

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)

看起來鏈接器試圖鏈接共享庫而不是編譯的靜態庫。 我嘗試了CMakeLists.txt的其他變體但失敗了。

如何正確地將Qt與cmake靜態鏈接? (對不起,我的英語不好)

CMAKE_CXX_FLAGS編譯器標志 ,但target_link_libraries使用鏈接器標志 ,它們是CMAKE_EXE_LINKER_FLAGS 對於靜態鏈接,您需要將-static添加到鏈接器標志

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM