我想单独编译一个 .cpp 文件而不参与整个构建过程。
如果我进行完整的构建,则编译步骤将输出到创建项目时配置的目录。
然而,如果我仅要求进行编译,则对象文件最终会被放置在与源文件相同的目录中。更糟糕的是,它会在执行编译时将对象文件链接到可执行文件上。
请注意,我正在使用 clang++ 进行 C++11 编译,但我认为这并不影响为什么它会第二次调用 Clang++.exe 进行链接,而该链接操作并未被请求。
编辑1
在进行构建时,它会执行以下操作:
-------------- Build: Debug in GOTW (compiler: GNU GCC Compiler)---------------
clang++.exe -Wall -fexceptions -g -std=c++11 -stdlib=libstdc++ -c
C:\Work\test\2010\C++11\CLang\GOTW\gotw.cpp -o obj\Debug\GOTW.o
clang++.exe -o bin\Debug\GOTW.exe obj\Debug\GOTW.o
Output size is 203.50 KB
Process terminated with status 0 (0 minutes, 11 seconds)
0 errors, 6 warnings (0 minutes, 11 seconds)
然而,当执行“编译当前文件”时,它会执行以下操作:
clang++.exe -std=c++11 -stdlib=libstdc++ -c GOTW.cpp -o GOTW.o
1 warning generated.
clang++.exe -o GOTW.exe GOTW.o
我不理解为什么它会输出第二步的内容,以及如何让它像构建一样使用 obj 和 bin 目录。