Closed noss3885 closed 2 years ago
./test/ にある #include "src/hoge/fuga.hpp"を #include "../../src/hoge/fuga.hpp" にする。
./test/
#include "src/hoge/fuga.hpp"
#include "../../src/hoge/fuga.hpp"
#include "" によるインクルードファイルの検索順序はおよそ
#include ""
""
-I
のようです。(参考1, 参考2)
現在、verifyに利用しているoj-verifyは自動的にリポジトリのあるディレクトリを -I で追加してくれているようなので問題はないですが、手元でコンパイルやlinterにかけるときには自分でインクルードパスを設定する必要があります。
./test
この記事によると、同じ名前のファイルやインクルード関係が複雑だと問題がありそうです。ただ、今のところは同じ名前のファイルを置いたり、ディレクトリの階層が深くなったりすることはなさそうなので大丈夫な気もします。
やります
./test/
にある#include "src/hoge/fuga.hpp"
を#include "../../src/hoge/fuga.hpp"
にする。背景
#include ""
によるインクルードファイルの検索順序はおよそ""
で指定したディレクトリ-I
のコンパイラオプションで追加したディレクトリのようです。(参考1, 参考2)
現在、verifyに利用しているoj-verifyは自動的にリポジトリのあるディレクトリを
-I
で追加してくれているようなので問題はないですが、手元でコンパイルやlinterにかけるときには自分でインクルードパスを設定する必要があります。メリット
デメリット
./test
のディレクトリ構成を変えた時にすべての相対パスを変更する必要があるメモ
この記事によると、同じ名前のファイルやインクルード関係が複雑だと問題がありそうです。ただ、今のところは同じ名前のファイルを置いたり、ディレクトリの階層が深くなったりすることはなさそうなので大丈夫な気もします。