链接C ++代码与 'GCC'(不含克++)(Linking C++ code wi

2019-06-23 10:02发布

大家好:快速的问题:我是在一个情况下这将是只使用“GCC”(无G ++)来生成我的C ++可执行有用。 原因是,我必须的代码提交到不能识别的自动提交服务器“克++”(或“C ++”,就此而言)命令。

在我的实验,而我的gcc 编译效果很好。 问题是,当我尝试它被搞砸生成的目标文件链接。 现在,基于我从海湾合作委员会手册页了解(我可能是遥远,所以告诉我,如果我),G ++基本上是GCC,但它链接的C ++库。

如果这是真的,我怎么能(如果可能)显式链接C ++库,而无需使用G ++(或C ++)命令?

编辑:我添加Makefile来更好地说明问题:

COMPILER = gcc
CFLAGS = -Wall -g -x c++

# MODULE COMPILATION
model: modules/model.h modules/sources/model.cpp
    $(COMPILER) $(CFLAGS) -c modules/sources/model.cpp -o obj/model.o

algorithms: modules/algorithms.h modules/sources/algorithms.cpp
    $(COMPILER) $(CFLAGS) -c modules/sources/algorithms.cpp -o obj/algorithms.o

io: modules/io.h modules/sources/io.cpp
    $(COMPILER) $(CFLAGS) -c modules/sources/io.cpp -o obj/io.o

stopwatch: modules/stopwatch.h modules/sources/stopwatch.cpp
    $(COMPILER) $(CFLAGS) -c modules/sources/stopwatch.cpp -o obj/stopwatch.o

# EXECUTABLE GENERATION
exe: model algorithms io stopwatch
    $(COMPILER) $(CFLAGS) main.cpp obj/model.o obj/algorithms.o obj/io.o obj/stopwatch.o -o bin/process

# DEFAULT TEST CASE
run: exe
    ./bin/process -i data/nasa_small.log -a data/nasa_small.access -s data/nasa_small.stack

# CLEANING ROUTINE
clean:
    rm -f obj/*

Answer 1:

你可以用链接标准C ++库-l标志GCC:

gcc cplusplus.o -lstdc++ -o myexe


Answer 2:

如果您运行的G ++使用“-v”选项,它会显示它使用什么命令和选项。 你应该能够正确的gcc命令行从那里推断。



文章来源: Linking C++ code with 'gcc' (without g++)
标签: c++ gcc linker