我是CMake的新手。因此,我有几个问题,我不想分成单独的线程,因为它们相当小而且相关。长话短说,让我们来看看这个链接调用:
/D/Software/MinGW/bin/g++.exe -fmessage-length=0 -mfpmath=sse -msse2 -msse3 -mssse3 -msse4 -fopenmp -g -Wl,--whole-archive CMakeFiles/go.dir/objects.a -Wl,--no-whole-archive -o go.exe -Wl,--out-implib,libgo.dll.a -Wl,--major-image-version,0,--minor-image-version,0 /D/Software/Qt/4.8.0/lib/libQtOpenGLd4.a /D/Software/Qt/4.8.0/lib/libQtGuid4.a /D/Software/Qt/4.8.0/lib/libQtCored4.a -lglu32 -lopengl32 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
kernel32, winspool, shell32,
ole32, uuid, comdlg32, advapi32
联系起来?当我建造同样的
与QMake合作的项目 - 没有这些库。而且,我
甚至不知道这些的目的。所以,它看起来像这些
图书馆是多余的,还是我错了?-Wl,--whole-archive CMakeFiles/go.dir/objects.a
-Wl,--no-whole-archive -o go.exe -Wl,--out-implib,libgo.dll.a
部分,我不知道。但是,我猜所有的目标文件都是
以某种方式存档到objects.a,因此这部分链接
本质上与显式的目标文件列表相同,不是吗?
CMake是否打算生成如此多的构建过程副产品?我对a.exe
完全感到困惑 - 那是什么?为什么它应该驻留在我的构建目录中?
答案 0 :(得分:1)
wrt 4)
a.exe文件(或更具体地说是驻留的文件夹)看起来像用于确定某些编译器功能是否存在的二进制文件。
无论如何,你在那里拥有的文件数量看起来非常适合CMake。如果配置和构建过程中的某些内容失败,其中一些对于高级调试非常有用,我认为它是CMake保持活着的良好做法。