0

これは私のメイクファイルです

EXE     = signsrch
CFLAGS  += -s -O2
PREFIX  = /usr/local
BINDIR  = $(PREFIX)/bin
SRC     = $(EXE).c

all:
    $(CC) $(CFLAGS) -c disasm.c
    $(CC) $(CFLAGS) -c asmserv.c
    $(CC) $(SRC) $(CFLAGS) -o $(EXE) *.o

install:
    install -m 755 -d $(BINDIR)
    install -m 755 $(EXE) $(BINDIR)/$(EXE)

.PHONY:
    install

ubuntu用にクロスコンパイルしたいので、試しました:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

しかし、「DWORD」の束で不明な型名エラーが発生します

ヘルプ?

4

2 に答える 2

1

クロス コンパイルするには、Makefile だけでなく、ターゲット プラットフォーム用のツールチェーンが必要です。このチュートリアルCygwinも確認してください

于 2012-11-06T20:42:31.247 に答える
1

また、いくつかのコードを確認する必要がありますが....

Windows には、Linux と同様に、バニラ C のものよりも基本的なものに対して独自の型があります。タイプとしてのDWORDはLinuxでは知られていないようです(おそらく)。Linux プラットフォーム用にビルドする場合、おそらく DWORD などの Windows 標準を Linux 言語に再定義する mytypes.h ファイルを作成する必要があります。Linux には、同等の int32_t などを定義する types.h があります。これについて詳しくは、このスレッドを参照してください。

動作するクロス コンパイラがセットアップされていて、ポートだけで戦っていると仮定しました。そうでない場合は、それが最初の仕事です。Linux を対象とする Windows ベースのコンパイラ (別の投稿で言及されている cygwin オプション) を使用するか、Windows を対象とする Linux ベースのコンパイラを使用することができます (ここでは crosstool が役立ちます)。あなたはアームをターゲットにしているように見えるので、Ubuntuのインストールはあなたが構築したい場所ではないことを期待しています! :-)

于 2012-11-06T20:45:01.530 に答える