こんにちはすべて:簡単な質問:「gcc」(g ++なし)を使用してC++の実行可能ファイルを生成すると便利な状況にあります。この理由は、 'g ++'(または 'C++')コマンドを認識しない自動提出サーバーにコードを提出しなければならないということです。「gcc」(g ++なし)とのリンク
私の実験では、 gccがコンパイルされています。問題は、私が生成されたオブジェクトファイルをリンクしようとすると、うんざりしてしまいます。さて、gccのmanページから理解したところに基づいて(gccのmanページから分かります)、g ++は基本的にgccですが、C++ライブラリにリンクしています。
もし可能であれば、を使わずに、どのようにC++ライブラリを明示的にリンクすることができますか?
EDIT:私はより良い問題を説明するための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/*
gccとg ++は、同じ実行可能ファイルを文字通り指します。唯一の違いは、バックエンドに渡されるフラグです。 –
自動提出サーバーを修正してください! –
オプションはありませんでした= D –