Harbourという開発プラットフォームを使用してClipperコードを使用し、32ビットSuSeで動作するLinux実行可能ファイルを作成しています。
プラットフォームの外部ライブラリを必要とする実行可能ファイルをすでに作成できますが、スタンドアロンの実行可能ファイルを作成する必要があります。Harbourでは、必要なすべてのライブラリを含めることでそれを実行できますが、次のコンパイルコマンドを試してみると次のようになります。
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
(基本的に「Alldone。」を画面に出力します。正しくコンパイルできるようになるまで、これですべてです。)
この問題を追跡しようとした90分間から、関数'main'(明らかにそこにあります)が見つからないか、cコンパイラに-gパラメータセットが必要であるように聞こえます-これは私ができることです'私が実際にコンパイラーに対処していないので、そうします-ハーバーコンパイラーはそれ自体ですべてを行います...
私はまた、その道を指摘したいと思います
/usr/src/packages/BUILD
私のシステムでは空です!ただし、上部のエラーに記載されているフルパスは、ファイルcrt1.o...にハードコードされています。
acオブジェクトを作成してコンパイルするようにコンパイラーに指示することも試みましたが、cコンパイラーの正しい入力ファイルが生成されず、クリッパーとcの両方にかなり慣れていません...
この問題に正しくタグを付けなかった場合はお詫びします-これは私の最初のstackoverflow投稿です-しかし、他のトピックについてここで非常に知識のある回答をたくさん見たので、試してみることにしました。他に必要な情報がありましたら、お知らせください。
前もって感謝します!