首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Qt5中静态地将CMake与CLion连接?

问如何在Qt5中静态地将CMake与CLion连接?
EN

Stack Overflow用户
提问于 2016-10-24 18:42:22
回答 1查看 1.4K关注 0票数 1

我下载了Qt的源代码,并使用-static标志将其编译成/usr/local/Qt5_static/。我创建了空项目,并像这样更改了CMakeLists.txt:

代码语言:javascript
复制
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)

链接器出错了。

代码语言:javascript
复制
/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进行静态链接?(对不起,我的英语很差)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-24 20:40:18

CMAKE_CXX_FLAGS是编译器标志,但target_link_libraries使用链接器标志,这是CMAKE_EXE_LINKER_FLAGS。对于静态链接,需要将-static添加到链接器标志中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40225307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档