2

新しいCLion C/C++ IDEで CMake を使用して Qt5 を学習しようとしています。これらのツールは比較的新しいものです。だから、私はこの本当に単純なコードを持っています:main.cpp

#include <QDebug>
int main() {
    qDebug("Hello World!");
    return 0;
}

ドキュメントに従って、これで終了しましたCMakeLists.txt

cmake_minimum_required(VERSION 2.8.11)
project(cl_hello_world2)

set(CMAKE_PREFIX_PATH D:/Qt/Qt5.4.0/5.4/msvc2012_opengl)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_VERBOSE_MAKEFILE ON)

find_package(Qt5Widgets)

set(SOURCE_FILES main.cpp)
add_executable(cl_hello_world2 WIN32 ${SOURCE_FILES})

target_link_libraries(cl_hello_world2 Qt5::Widgets)

何時間も試行した後、次のundefined referenceエラーが発生し続けます。

CMakeFiles\cl_hello_world2.dir/objects.a(main.cpp.obj): In function `main':
E:/Qt/test/cl-hello-world2/main.cpp:4: undefined reference to `_imp___ZNK14QMessageLogger5debugEPKcz'

これは、CMake が実行しているコンパイラ コマンドです。

D:\PROGRA~2\CODEBL~1\MinGW\bin\G__~1.EXE   -std=c++11 -g    -mwindows -Wl,--whole-archive CMakeFiles\cl_hello_world2.dir/objects.a -Wl,--no-whole-archive  -o cl_hello_world2.exe -Wl,--out-implib,libcl_hello_world2.dll.a -Wl,--major-image-version,0,--minor-image-version,0  D:\Qt\Qt5.4.0\5.4\msvc2012_opengl\lib\Qt5Widgetsd.lib D:\Qt\Qt5.4.0\5.4\msvc2012_opengl\lib\Qt5Guid.lib D:\Qt\Qt5.4.0\5.4\msvc2012_opengl\lib\Qt5Cored.lib D:\Qt\Qt5.4.0\5.4\msvc2012_opengl\lib\qtmaind.lib -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32

この行が構文的に正しいかどうかはわかりませんが、ライブラリD:\Qt\Qt5.4.0\5.4\msvc2012_opengl\lib\Qt5Widgetsd.libは存在します...

Qt5.3.2 と Qt 5.4.0 で試しました。リンク用のライブラリを追加する別の方法を知っているかもしれませんし、私が間違っているかもしれません...

ありがとう。

4

1 に答える 1