前提・実現したいこと
ここに質問の内容を詳しく書いてください。
内田公太さん著「自作シミュレータで学ぶx86アーキテクチャ」にあるブートセクタ解析用コマンドbootsをGitHubからcloneし、コンパイルを試みたところ、以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
tefunamu@tefunamu-VirtualBox:~/test/boots$ make make boots make[1]: Entering directory '/home/tefunamu/Documents/tolset/test/boots' g++ -std=c++11 -c -o boots.o boots.cpp boots.cpp:10:10: fatal error: boost/program_options.hpp: No such file or directory #include <boost/program_options.hpp> ^~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. <builtin>: recipe for target 'boots.o' failed make[1]: *** [boots.o] Error 1 make[1]: Leaving directory '/home/tefunamu/Documents/tolset/test/boots' Makefile:9: recipe for target 'all' failed make: *** [all] Error 2
boots.cppのソースコード一部
// boots.cpp : <83>R<83><93><83>\<81>[<83><8b> <83>A<83>v<83><8a><83>P<81>[<83>V<83><87><83><93><82>Ì<83>G<83><93><83>g<83><8a> <83>|<83>C<83><93><83>g<82>ð<92>è<8b>`<82>µ<82>Ü<82>·<81>B // #include <iostream> #include <array> #include <fstream> #include <string> #include <vector> #include <memory> #include <boost/program_options.hpp> #include <boost/optional.hpp> #include "read.hpp" #include "show.hpp" using namespace std; namespace po = boost::program_options;
Makefileのソースコード
TARGET = boots OBJS = boots.o bootsector.o read.o show.o \ mbr.o pbrfat.o CXXFLAGS += -std=c++11 LDFLAGS += -lboost_program_options .PHONY: all all: make $(TARGET) $(TARGET): $(OBJS) Makefile $(CXX) -o $(TARGET) $(OBJS) $(LDFLAGS) .PHONY: clean clean: rm *.o
試したこと
エラー原因として<boost/program_options.hpp>がinlcudeできてないとのことなのでLDFLAGSが引っ張れてないのかな、と思いましたが特にどうすればよいかわからず途方に暮れていました。
補足情報(FW/ツールのバージョンなど)
OS: Ubuntu18.04です。訳あってあえてUbuntuで確認しています。
あなたの回答
tips
プレビュー