如何在CLion中静态链接Qt5与CMake
How to statically link Qt5 with CMake in CLion?
我下载了Qt的源代码,用-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
添加到链接标志。
相关文章:
- 如何避免在 cmake 中自动链接 Qt5 库?
- Qt5 C++将新窗口与Qt设计器链接
- 从Qt5链接MySQL时出错
- 链接QT5库会自动将额外的FPIC标志传递给NVCC编译器,并通过cmake Cause错误
- 链接 Qt5.6 会产生找不到所需引用的错误
- 是否可以使用 Qt5 处理硬链接
- 在将 cmake 项目与 Qt5 链接时部署 icu 库
- 使链接器查找qt5
- Makefile和QT5:链接QT5与调试符号
- Qt5 Windows 静态链接错误
- cv::VideoCapture from string 在 Mac 上的 Qt5 中给出链接器错误
- QT 创建器 qt5.1 vs2010 使用静态库时出现链接器错误
- Qt4 到 Qt5 链接错误
- VS2013的Qt4到Qt5迁移链接器警告(和错误)
- 链接器找不到qwebp-lib-静态Qt5.3.2编译
- 将图标添加到QT5会导致链接器错误
- 如何在CLion中静态链接Qt5与CMake
- 链接问题:Qt5.5 32位VS2013
- 在Ubuntu的Qt5应用程序中链接libqxt
- Qt5链接错误