[英]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.