私が既にコンパイルしたa projectに対してsample binaryを作成しようとしています。メイク中に必要なヘッダーファイルをリンクする
コンパイルが、私は、プロジェクトのソースで不足しているヘッダファイルを参照することができ
$ make
c++ -D_THREAD_SAFE -I/usr/local/Cellar/protobuf/2.6.1/include -L/usr/local/Cellar/protobuf/2.6.1/lib -lprotobuf-lite tileinfo.cpp ../../src/vector_tile.pb.cc -o tileinfo -lprotobuf-lite -lz
tileinfo.cpp:7:10: fatal error: 'vector_tile_compression.hpp' file not found
#include "vector_tile_compression.hpp"
^
1 error generated.
make: *** [tileinfo] Error 1
で失敗します。私はそれを見つけることができるように、コンパイル時にそれを含めたい。私は単純にすべてのソースをコピーすると間違った&私はこのヘッダーファイルを指すことができるはずだと仮定します。 -I
フラグを試しましたが、どのようなパスを指定しても、このヘッダーファイルを見つけることができません。
だから私洞窟の中やヘッダファイルをコピー...
$ cp ../../src/vector_tile_compression.hpp .
$ make
c++ -D_THREAD_SAFE -I/usr/local/Cellar/protobuf/2.6.1/include -L/usr/local/Cellar/protobuf/2.6.1/lib -lprotobuf-lite tileinfo.cpp ../../src/vector_tile.pb.cc -o tileinfo -lprotobuf-lite -lz
In file included from tileinfo.cpp:7:
./vector_tile_compression.hpp:5:10: fatal error: 'vector_tile_config.hpp' file not found
#include "vector_tile_config.hpp"
^
1 error generated.
make: *** [tileinfo] Error 1
OK、それは今、新しいファイルの後だとそれだけでより多くを望むだろう。 (私は心配ですけれども、私は間違ってターンを取った)のは、例の中にプロジェクト全体のソースを移動してみましょう...
$ cp ../../src/* .
$ make
c++ -D_THREAD_SAFE -I/usr/local/Cellar/protobuf/2.6.1/include -L/usr/local/Cellar/protobuf/2.6.1/lib -lprotobuf-lite tileinfo.cpp ../../src/vector_tile.pb.cc -o tileinfo -lprotobuf-lite -lz
In file included from tileinfo.cpp:7:
In file included from ./vector_tile_compression.hpp:5:
./vector_tile_config.hpp:10:10: fatal error: 'protozero/types.hpp' file not found
#include <protozero/types.hpp>
^
1 error generated.
make: *** [tileinfo] Error 1
まあ少し進歩のように見えています。それはprotozeroが欲しい。これはdeps
というプロジェクトのサブフォルダに含まれています。さて、私はそれを含めるようにしています。
$ make -I ../../deps/protozero/include/
c++ -D_THREAD_SAFE -I/usr/local/Cellar/protobuf/2.6.1/include -L/usr/local/Cellar/protobuf/2.6.1/lib -lprotobuf-lite tileinfo.cpp ../../src/vector_tile.pb.cc -o tileinfo -lprotobuf-lite -lz
In file included from tileinfo.cpp:7:
In file included from ./vector_tile_compression.hpp:5:
./vector_tile_config.hpp:10:10: fatal error: 'protozero/types.hpp' file not found
#include <protozero/types.hpp>
^
1 error generated.
make: *** [tileinfo] Error 1
繰り返しますが、私はパス上のいくつかのバリエーションを試してみましたが、この-I
フラグが、私はそれが私はそれがないと思う何をしないと思います。
私は必死で私は依存関係をコピーします。
$ cp -r ../../deps/protozero/include/protozero .
$ make
c++ -D_THREAD_SAFE -I/usr/local/Cellar/protobuf/2.6.1/include -L/usr/local/Cellar/protobuf/2.6.1/lib -lprotobuf-lite tileinfo.cpp ../../src/vector_tile.pb.cc -o tileinfo -lprotobuf-lite -lz
In file included from tileinfo.cpp:7:
In file included from ./vector_tile_compression.hpp:5:
./vector_tile_config.hpp:10:10: error: 'protozero/types.hpp' file not found with <angled> include; use "quotes" instead
#include <protozero/types.hpp>
^~~~~~~~~~~~~~~~~~~~~
"protozero/types.hpp"
このメッセージは、ファイルをコピーするのではなく、ファイルにリンクするように指示しています。明らかに私は間違っている。代わりに私は何をしなければなりませんか?