私の元の質問は以下ですが、次の関連する質問に発展しました:リンカー ステートメントのオブジェクトの後にリンカー フラグを配置することに何か問題がありますか?
Eclipse でビルドすると、次のリンク ステートメントが実行されます。
g++ -fopenmp -lconfig++ -o "pc2" ./main.o ./sampling.o ./simulation.o
これは正しくlconfig++
ありません。オブジェクト ファイルのリストの前ではなく、後に続く必要があるからです。そこで、プロジェクトの設定をもとにEclipseが自動生成するmakefileを修正しました。具体的には、メイクファイルのこの部分を変更しました
# Tool invocations
pc2: $(OBJS) $(USER_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C++ Linker'
g++ -fopenmp -lconfig++ -o "pc2" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '
次のようになります。
# Tool invocations
pc2: $(OBJS) $(USER_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: GCC C++ Linker'
g++ -o "pc2" $(OBJS) $(USER_OBJS) $(LIBS) -fopenmp -lconfig++
@echo 'Finished building target: $@'
@echo ' '
次に、メイクファイルのその1行を変更した後、入力しました
make clean all -C release
コマンドラインで、次の正しいリンクステートメントを生成しました:
g++ -o "pc2" ./main.o ./sampling.o ./simulation.o -fopenmp -lconfig++
したがって、ビルド プロセスが正しくなるようにメイクファイルを修正する方法を知っています。
私が知らないのは、Eclipse が生成する makefile がリンカー フラグ (または「オプション」?) を正しい場所に配置するように Eclipse を構成する方法です。