1

x86-64 Ubuntu でツールチェーンを使用して arm7 ボードのクロスコンパイルを試みています。必要なヘッダーは、次のファイル システムにあります。

.../include/<libdir1>
.../include/<libdir2>
[more]
.../include/<libdirN>

.../include ディレクトリには、互換性のない標準ヘッダーが含まれています (理由は制御できません)。-I オプションを使用すると、gcc は本来あるべきヘッダーではなく、これらの互換性のない標準ヘッダーを使用します。これより前に -I オプションを使用して互換性のあるすべての標準ヘッダー パスを含めても機能しません。

ネイティブ コンパイル時と arm7 ボード用に同じソース パスを使用したい:

#include <libdir1/lib1.h>
#include <libdir2/lib2.h>
...
#include <libdirN/libN.h>

現在存在するファイルシステムを使用してこれを行う方法はありますか、または lib1、lib2、... libN ヘッダーファイルを別の場所に完全にコピーする必要がありますか?

4

1 に答える 1

1

これには-iquoteオプションを使用できます。

#include'の場合のみ、ヘッダーファイルを検索するディレクトリのリストの先頭にディレクトリdirを追加します。それ以外の場合は#include "file"'; they are not searched for、-Iと同様です。

したがって、""スタイルインクルードディレクティブを使用してカスタムヘッダーをインクルードします。

#include "libdir1/lib1.h"
#include "libdir2/lib2.h"

しかし、<>スタイルのある標準ヘッダー:

#include <stdlib.h>

そして、:-iquoteではなくでディレクトリを追加します。-I

-iquote../include
于 2013-03-06T18:50:29.023 に答える