如何将.cpp文件编译为对象文件而不调用链接器

How do I compile a .cpp file just to object file without calling linker

本文关键字:文件 调用 链接 对象 cpp 编译      更新时间:2023-10-16

我正在尝试从构建过程中单独编译一个。cpp文件。

如果我做一个完整的构建,那么编译步骤输出到创建项目时配置的目录。

然而,如果我只是要求编译,我最终与目标文件进入与源文件相同的目录,更糟糕的是,当它应该进行编译时,它继续并将目标文件链接到可执行文件。

注意我是用clang++编译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:Worktest2010C++11CLangGOTWgotw.cpp -o objDebugGOTW.o
clang++.exe  -o binDebugGOTW.exe objDebugGOTW.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目录

使用-c选项

- c

运行上述所有代码,再加上汇编程序,生成一个目标".o"对象文件。

g++ -c *.cpp它将。cpp编译成。o