【发布时间】:2022-10-07 10:56:33
【问题描述】:
Newbee 在 QT 创建者和 CMake 上,并为基本问题道歉,但努力将简单的外部库链接到我的主要项目。以下是项目路径:
build-QMLTest-Desktop_Qt_6_3_1_MinGW_64_bit-Debug // application binary path
QMLLib
build-mylib-Desktop_Qt_6_3_1_MinGW_64_bit-Debug // lib binary path
mylib
CMakeLists.txt
mylib.cpp // lib source path
mylib.h
QMLTest
CMakeLists.txt
main.cpp // application source path
这是我尝试链接静态库的方式(截取 QMLTest/CMakeLists.txt)。我使用这个线程作为参考:
How do I explicitly specify an out-of-tree source in CMake?
add_subdirectory(../QMLLib/mylib ../QMLLib/build-mylib-Desktop_Qt_6_3_1_MinGW_64_bit-Debug)
target_link_libraries(mylib)
set(PROJECT_SOURCES
main.cpp
qml.qrc
)
主文件
#include \"../QMLLib/mylib/mylib.h\"
int main(int argc, char *argv[])
{
Mylib mylib;
然而,它不会解决,这是输出
C:/Qt/Tools/mingw1120_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: CMakeFiles/QMLTest.dir/main.cpp.obj: in function `qMain(int, char**)\':
C:/myroot/UITest/QMLTest/main.cpp:13: undefined reference to `Mylib::Mylib()\'
collect2.exe: error: ld returned 1 exit status
我无法得到答案,所以 50 分可以抢,因为我无法解决这个问题。
理想情况下,如果您能指出我最近使用 CMake 和 QT Creator 8.0 制作一个简单的项目和库并将它们链接在一起的项目,那就太好了。
标签: cmake qt-creator qt6