我正在尝试与构建过程分开编译单个.cpp文件。
如果我进行完整构建,则编译步骤将输出到创建项目时配置的目录。
但是,如果我只是要求编译,我最终会将目标文件转到与源相同的目录,更糟糕的是,当它被认为正在进行编译时,会将目标文件链接到可执行文件。 / p>
注意我正在使用clang ++ for C ++ 11进行编译,但是我认为没有任何限制它为什么调用Clang ++。exe第二次没有被请求链接。
EDIT1
构建它时这样做
-------------- 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)
然而,当执行Compile Current File
时,它会这样做:
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目录,比如构建
答案 0 :(得分:7)
-c
运行上述所有内容,加上汇编程序,生成目标“.o” 对象文件。
答案 1 :(得分:2)
g ++ -c * .cpp 它将.cpp编译成.o