3

ですから、私はこの非常に単純なSDLアプリケーションを持っており、友人に大量のSDLパッケージをダウンロードさせずに渡すことができるようにしたいと考えています。

どうすればこれについて行くことができますか?私はコンパイルにこの行を使用するように言われました:(私はubuntulinuxを使用しているので、私の友人もそうです。このアプリケーションは「-Wl、-Bstatic」オプションなしでコンパイルして実行できます。)

    g ++ test-sdl.cpp -o test-sdl -Wl、-Bstatic -lSDL_image -lSDL

しかし、次のエラーが発生します。

    / usr / bin / ld:-lgcc_sが見つかりません  
    collect2:ldが1つの終了ステータスを返しました

なぜこのエラーが発生するのですか?どうすれば修正できますか?私もこのようにこれをしなければなりませんか?別の/簡単な/代替の方法はありますか?

とにかく彼がおそらく決して使用しないであろうパッケージをダウンロードする煩わしさを私の友人に救いたいので、私はそんなに多くを求めていますか?

ありがとう。

4

2 に答える 2

3

長期的には、あなたの最善の策は、.debs をビルドする方法を理解することです。そうすれば、あなたの友人のシステムのパッケージ管理が、必要なすべての依存関係のインストールを処理できます。パッケージをより広く配布したい場合は、プラットフォームのネイティブ パッケージング システムを意図したとおりに使用することで、あなたとユーザーの多くの頭痛の種を取り除くことができます。

パッケージングpbuilder に関するUbuntu のガイドをご覧ください。

個人的には、Martin Krafft Debian bookから自分のプロジェクト (Debian 上) でこれを行う方法を学び、yadaを使用するとプロセスが大幅に合理化されることがわかりました。

于 2009-02-10T21:51:40.403 に答える
2

-Bを取り除く必要があると思います(これにより検索パスが変更されます。mang++を参照してください。したがって、ライブラリが見つかりません)。

あなたが意味したスイッチは-staticであり、Bはありません。

コメントに応じて編集:申し訳ありませんが、それは不完全でした。代わりに、すべての「-Wl、-Bstatic」を「-static」に置き換えてください。

codelogicが書いたように、-staticはリンカーのオプションではありません(-Wlが意味します)。

于 2009-02-10T21:03:26.260 に答える