大家好:我有一个问题:目前情况是只能使用“gcc”(不使用g ++)生成我的C ++可执行文件,因为我必须将代码提交到无法识别“g++”(或“c++”,同样的原因)命令的自动提交服务器。
在我的实验中,当我编译时,gcc可以正常工作。问题是,当我尝试链接生成的目标文件时,它会出现问题。现在,根据我从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/*