###前提・実現したいこと
複数のC++ファイルをコンパイルするためのmakefileを作成しています.
makefile内でiostreamをincludeしたいのですが,
エラーが出ます.
###発生している問題・エラーメッセージ
CC -Wall -o build/hogehoge solver/hogehoge/hogehoge.cpp
/tmp/ccKM6Ogx.o:hogehoge.cpp:(.text+0x44): std::ios_base::Init::Init()' に対する定義されていない参照です /tmp/ccKM6Ogx.o:hogehoge.cpp:(.text+0x44): 再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (未定義シンボル
std::ios_base::Init::Init()' に対して)
/tmp/ccKM6Ogx.o:hogehoge.cpp:(.rdata$.refptr._ZNSt8ios_base4InitD1Ev[.refptr._ZNSt8ios_base4InitD1Ev]+0x0): `std::ios_base::Init::~Init()' に対する定義されていない参照です
collect2: エラー: ld はステータス 1 で終了しました
Makefile:19: ターゲット 'build/hogehoge.o' のレシピで失敗しました
make: *** [build/hogehoge.o] エラー 1
###該当のソースコード
hogehoge.h
header
1#pragma once 2#ifndef __HOGEHOGE__ 3#define __HOGEHOGE__ 4 5#include <iostream> 6using namespace std; 7 8#endif /*HOGEHOGE*/
hogehoge.cpp
cpp
1#include "hogehoge.h" 2 3int main(int argc,char *argv[]){ 4 return 0; 5}
makefile
makefile
1#makefile 2 3#main compiler 4CC := g++ 5#source file extension 6SRCEXT := cpp 7#build directory 8BUILDDIR := build 9#result directory 10RESULTDIR := result 11#solver directory 12SOLVER := solver 13 14#solver file 15META := hogehoge 16 17$(META): $(BUILDDIR)/$(META).o $(SOLVER)/$(META)/$(META).h 18$(BUILDDIR)/$(META).o: $(SOLVER)/$(META)/$(META).cpp 19 CC -Wall -o $(BUILDDIR)/$(META) $(SOLVER)/$(META)/$(META).cpp 20clean: 21 rm -f $(BUILDDIR)/*.o $(BUILDDIR)/*.exe
###試したこと
cppファイルの方でinclude <iostream>を行った場合にもうまくいきませんでした.
###補足情報(言語/FW/ツール等のバージョンなど)
windows8 cygwin
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/24 02:35 編集
2016/06/24 02:38
2016/06/24 02:39