私はHarpperという開発プラットフォームを使用して、Clipperコードを使用して32ビットSuSe上で動作するLinux実行可能ファイルを作成しています。コンパイルエラー - sysdeps/i386/elf/start.Sおよびメインへの未定義参照
プラットフォームの外部ライブラリが必要な実行可能ファイルを作成することはできますが、スタンドアロンの実行可能ファイルを作成する必要があります。ハーバーは、私はすべての必要なライブラリを含むことであることを行うことができますが、私は、次のコマンドをコンパイルしようとすると:
hbmk test3 -static
私は、次のエラー出力を取得:この時点で
Harbour 2.0.0 (Rev. -1)
Copyright (c) 1999-2010, http://www.harbour-project.org/
Compiling 'test3.prg'...
Lines 3, Functions/Procedures 1
Generating C source output to 'test3.c'... Done.
/usr/lib/gcc/i586-suse-linux/4.5/../../../crt1.o: In function
`_start':
/usr/src/packages/BUILD/glibc-2.11.2/csu/../sysdeps/i386/elf/start.S:
115: undefined reference to `main'
./test3.o: In function `HB_FUN_MAIN':
test3.c:(.text+0x17): undefined reference to `hb_vmExecute'
./test3.o: In function `hb_vm_SymbolInit_TEST3':
test3.c:(.text+0x4e): undefined reference to `hb_vmProcessSymbols'
./test3.o:(.data+0x38): undefined reference to `HB_FUN_QOUT'
/tmp/cc5KcKMd.o: In function `hb_lnk_SetDefault_build':
hb-build-root-24212.c:(.text+0x1e): undefined reference to
`hb_vmSetDefaultGT'
/tmp/cc5KcKMd.o: In function `_hb_lnk_ForceLink_build':
hb-build-root-24212.c:(.text+0x8): undefined reference to
`HB_FUN_HB_GT_STD'
collect2: ld returned 1 exit status
私のコードは非常に簡単ですダウン易しく書き直さ:
function main()
? "All done."
return nil
(これは、基本的には画面上に「すべてが行われ、」出力し、それは私が、私はそれを正しくコンパイルするために得ることができるまで、それはやらせてるすべてです。)
この問題を追跡しようとしたところ、「main」(明らかにそこにある)関数を見つけることができないか、あるいは-gパラメータセットが必要ですハーバーコンパイラは、それ自体ですべてを行い、私もパス
/usr/src/packages/BUILD
がオンに空であることを指摘したいと思います...
を - 私は実際にコンパイラを自分で対処していないので、私は行うことはできません私のシステム!しかし、上のエラーに記載されているフルパスは、ファイルcrt1.oにハードコードされています...
私はコンパイラにACオブジェクトを作成してコンパイルするように指示しましたが、 Cコンパイラ用の入力ファイルです。私は、クリッパーとCの両方にかなり新しいです...
私はこの問題に正しくタグ付けしなかった場合、私は謝罪します - これは私の最初のstackoverflowのポストですが、他のトピックについては非常に知識豊富な回答がありますので、試してみることにしました。 必要な情報があれば教えてください。
ありがとうございます!
コンパイルスクリプトを編集する可能性があることに気付いたので、GCCエントリを見つけて "-g"をパラメータとして追加しましたが、同じエラーが発生しました。私の場合... – semmelbroesel