問題タブ [cross-compiling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 共有ライブラリの絶対パスの埋め込み
ベンダー提供のクロスコンパイル ツールチェーン (明らかに OpenEmbedded の派生物) を使用すると、サードパーティ (オープン ソース、社内でコンパイル) ライブラリへの絶対パスを埋め込むことができません。次の gcc コマンド ラインを使用します。
objdump 言います:
私のベンダーのライブラリにはフル パスがあり、aspl にはありません。また、埋め込まれた名前が、コマンド ラインで指定したものとどのように異なるかに注目してください。理由 (誰が私のパスをいじっているのか) とその解決方法を知りたいです。
ps: RPATH については知っていますが、それは私が探している答えではありません
environment-variables - Scratchbox の Scons: g++ が見つかりません
Make ベースのコードベースで sbox を問題なく使用しています。現在、私は scons ベースのコードベースを使用しており、奇妙な問題が発生しています。
Scratchbox 内で、scons が g++ を見つけられないようです。たとえば、次のようなことを実行しようとします。
o こんにちは hello.c
実行する必要がある場合:
g++ -o こんにちは hello.c
したがって、おそらくその g++ 文字列変数は空です。g++ が存在し、PATH に - 「どの g++」が /scratchbox/compilers/bin/g++ を生成します。
同じソースがスクラッチボックスの外でも問題なくビルドされるため、scons やコードベースで問題になることはありません。Scratchbox が機能する場合、scratchbox の外部で設定される特別な環境変数はありません。
/usr/bin/g++ を /scratchbox/compilers/bin/g++ にシンボリックにリンクすると、もう少し進んで (正しい見た目の g++ コマンドが生成されます)、実行すると次のようになります。
sb_gcc_wrapper (g++): /scratchbox/compilers/arm-linux-cs2007q3-51sb3/bin/sbox-arm-none-linux-gnueabi-g++: そのようなファイルまたはディレクトリはありません
リストされたファイルが存在します。
PATH には /scratchbox/compilers/bin、SBOX_REDIRECT_FROM_DIRS には /usr/bin、SBOX_REDIRECT_TO_DIRS には /scratchbox/compilers/bin が含まれているので、検索できるはずだと思います。
任意の提案をいただければ幸いです! ありがとう、レイ
編集:おそらく関連しています-sconsファイル内のフルパスを追加しない限り、pkg-configも見つかりません
linux - ARMGNUクロスコンパイラの構築
同様の(あまり説明的でない)投稿はここにあります。
私はUbuntuの最近のリリースを使用して独自のツールチェーンを展開しようとしていますが、特定の問題が発生したときに具体的なアドバイスを得ることができる十分なLinuxコミュニティがここにあることを望んでいました。
皆さんの助けを借りて、これが最終的には有用なリファレンスになることを望んでいます。
まず、ほとんどの人が言及している「Crosstool」は少し(2006年)古くなっており、現在トーチを運んでいるように見える「Crosstool-NG」は私のマシンで失敗します。スクリプトよりもプロセス自体をデバッグしたい(プロセスを理解する必要があるように思われる)。
以下は、私がこれまでに取り組んできた基本的な手順です。現在、最初のパスのGCCをコンパイルしようとして立ち往生しています。
失敗しているところ...
「crti.o」を含むクロスコンパイルされたライブラリが欠落しているため、失敗しています。
ビルド手順
「新しく」構成されたUbuntu9.04のインストールで、これまでに行った手順は次のとおりです。
macos - 間違ったシステムとクロス コンパイルの質問に対してオブジェクト コードをコンパイルするにはどうすればよいですか?
コンパイルに関するこの質問を参照してください。Mac 用の私のプログラムがどのように正しい -arch を使用し、それらの -arch フラグを使用してコンパイルし、 -arch フラグが私が使用しているシステム (ppc64 g5) 用であり、それでも間違ったオブジェクト コードを生成するのか理解できません。
また、クロス コンパイラを使用して Linux を使用し、Mac 用の 10.5 コードを生成した場合、これは上記で説明したものとどのように異なるでしょうか?
背景は、さまざまなApacheモジュールをコンパイルしようとしたことです。-arch ppc、ppc64 などでコンパイルします。エラーは発生せず、mod_whatever.so を取得します。しかし、apache は常にシンボルが見つからないと文句を言います。どうやら、ファイルの種類は ppc、ppc64、i386、x_64 (ユニバーサル バイナリ) であり、私が持っている他のすべての .so mod と一致しているように見えますが、コンパイラが生成するものと関係があるようです。
どうすれば自分のシステムで問題なくコンパイルできるのか理解できず、自分のシステムでは使用できないと言います。たぶん、コンパイラが実際に私に何を与えているのか理解していません。
編集: すべてのエラー メッセージと完全なプロセスは、こちらで確認できます。
ありがとうございました。
c++ - わずかに異なる 2 つのマシンでコンパイルされたライブラリの動作がわずかに異なるのはなぜですか?
セットアップは次のとおりです。
私の同僚は、(buildroot からの) gcc 4.3.3 クロス コンパイラを備えた Fedora x64_86 マシンを持っています。同じクロス コンパイラを搭載した Ubuntu 9.04 x64_86 マシンを使用しています。
私の同僚は、テスト マシンで動作するライブラリ + テスト アプリを作成しました。同じライブラリと testapp をコンパイルしましたが、同じテスト マシンでクラッシュします。
私の知る限り、gcc は buildroot でコンパイルされた ucLibc に対してビルドされているため、同じコード、同じコンパイラです。クロス コンパイルに影響を与えるホスト マシンの相違点は何ですか?
任意の洞察をいただければ幸いです。
更新: 明確にするために、コンパイラは同一です。ライブラリと testapp のソース コードは同一です。唯一の違いは、testapp + lib が別のマシンでコンパイルされていることです。
c++ - Linux/MinGW でコンパイルされた libs/dll を Visual Studio で使用する
更新: コンパイル時にこの警告が表示されます: 複数の '.text' セクションが異なる属性で見つかりました
やあ、
MinGW Cross Compiler を使用して、Linux でいくつかのライブラリ (.a および .dll) をコンパイルしました。Visual Studio 2008 でそれら (.a) に対して正常にリンクできます。ただし、(.dll を使用して) 実行すると、空のメモリ アドレスを指すアドレス ポインターで終了します。
これらのライブラリを VC08 で正常に使用できるようにする方法/リストはありますか?
クロスコンパイラが生成する
- *.dll.a
- *.dll
ありがとう
iphone - iPhone用のOpenSSHをコンパイルしていますか?
iPhone 用に難読化された opensshを (クロス) コンパイルしようとしていますが、いくつかの問題が発生しています。これを使用してビルドを構成しています:
ただし、これは機能せず、netinet/in_systm.h
およびopenssl/bn.h
. ビルドを完成させる方法について誰かアイデアがありますか?
pthreads - Pthreadライブラリにより、プログラムは終了時にセグメンテーション違反を起こします
私はアルファ版のPARSECベンチマークをクロスコンパイルしていますが、プログラムが終了すると、いくつかのベンチマークでセグメンテーション違反が発生します。先に進んで非pthreadsバージョンを実行し、セグメンテーション違反がなかったため、問題をPthreadsライブラリに絞り込みました。セグメンテーション違反にもかかわらず、プログラムは正しい結果を取得しますが、この問題は受け入れられません。
いくつかの情報:これらのベンチマークをM5シミュレーターで実行しているため、ライブラリを動的にリンクできません。すべてが静的に-staticにリンクされています。
これを解決する方法についてのアイデアはありますか?Alpha Crossコンパイラでpthreadsライブラリを再構築する必要があるのか、フラグを追加する必要があるのかわからない。
cross-compiling - PPC 405 ターゲット用の Eclipse での Windows でのクロスコンパイル
PPC 405 アーキテクチャのマシンにデプロイされるコードをビルド、開発、およびクロスコンパイルするために、MinGW または Cygwin で Eclipse をセットアップする方法を知っている人はいますか? コンパイラに適切なフラグを設定するのと同じくらい簡単ですか、それとももっと複雑なものがありますか? PPC プロセッサで Linux を実行する組み込みシステム用に Windows で開発しています。正しい方向への助けや指針を心から感謝します。