問題タブ [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++ - リンク エラー: 未定義のシンボル、多数 (cpp クロス コンパイル)
最後のリンク コマンド (実際の実行可能ファイルがリンクされています) に到達しますが、未定義のシンボルが大量に発生します (それらは cpp にあり、単純な C プログラマーである私にはとても恐ろしく見えます)。
--おそらく単純なものですが、リンカとして配置する必要があるものを取得できません(ここでgccを使用しています...?それは適切ですか?g++は入力ファイルが多すぎると言っていました笑)(ldはほとんど同じものを返します)
とにかくばかげている、私は完全に立ち往生している
ご協力ありがとうございました!
c++ - C ++アプリケーション-ライブラリに静的リンクまたは動的リンクを使用する必要がありますか?
Boostライブラリ、log4cxx、またはgoogleロギングライブラリの一部を含む一連のライブラリに依存する新しいC ++プロジェクトを開始します。プロジェクトが進化するにつれて、他のライブラリも進化します(まだ予測できません)。 。
32ビットシステムと64ビットシステムの両方で実行する必要があります。おそらく、必要なすべてのライブラリやsu特権が利用できるとは思わない、非常に多様なLinux環境で実行する必要があります。
私の質問は、これらすべてのライブラリに動的または静的にリンクしてアプリケーションを構築する必要があるかどうかです。
ノート:
(1)静的リンクは開発中に苦痛になる可能性があることを認識しています(コンパイル時間の延長、32ビットと64ビットの両方のクロスコンパイル、依存関係チェーンを下げてすべてのライブラリを含めるなど)が、テスト中ははるかに簡単です-ファイルを移動して実行するだけです。
(2)一方、動的リンクは開発段階で簡単になります-コンパイル時間が短く(32ビット開発環境から64ビットライブラリへの動的リンクを処理する方法がよくわかりません)、依存関係の連鎖に煩わされることはありません。一方、新しいバージョンの展開は醜い場合があります。特に、新しいライブラリが必要な場合(対象のマシンにsu権限がない、またはこれらのライブラリが利用できないという上記の条件を参照)。
(3)このトピックに関連する質問を読みましたが、どのアプローチが私のシナリオに最も適しているかを実際に理解できませんでした。
結論:
- ご意見ありがとうございました!
- 私はおそらく静的リンクを使用します。理由は次のとおりです。
- より簡単な展開
- パフォーマンス中の予測可能なパフォーマンスとより一貫した結果。テスト(このペーパーを参照してください:http://www.inf.usi.ch/faculty/hauswirth/publications/CU-CS-1042-08.pdf)
- 指摘したように、静的と動的のコンパイルのサイズと期間はそれほど大きな違いではないようです
- より簡単でより速いテストサイクル
- 私はすべての開発者を維持することができます。私の開発者のサイクル。マシーン
linux - Linux 用の Xscale コンパイラ? (Xscaleコンパイルフラグの質問も)
現在、GCC 3.3.3 ベースのクロス コンパイラを使用して、Xscale PXA270 開発ボード用にコンパイルしています。しかし、Linux (または Windows) で動作する Xscale コンパイラが他にあるのではないかと思っていました。私が使用しているクロス コンパイラのセットアップは、ターゲット デバイスで恐ろしいパフォーマンスを発揮します。適切な量の数学演算を実行する特定のプログラムは、Xscale プロセッサでは、同様のクロックの Pentium 2 よりも 10 倍から 20 倍悪いパフォーマンスを示します。パフォーマンスに役立つ可能性があるGCCベースのコンパイラで設定する必要がある特定のコンパイラフラグがありますか?
ありがとう、ベン
delphi - Delphi の次のリリースでは、Mac と Linux のクロス コンパイルがサポートされますか?
Allen Bauer による最近のブログ投稿によると:
Mac と Linux のクロス コンパイルに重点を置いた次の RAD Studio リリースである Fulcrum に取り組んでいます [..]
誰かがコメントで言及するだろうと思っていましたが、Mac/Linux のサポートは数リリース先になると思いました。私だけかもしれませんが、これは大きなニュースです。
これは、今年の Delphi リリースで作成された Mac/Linux バイナリが表示されるということですか?
linux - libX11.so、libGL.so、および libGLU.so を必要とするアプリケーションがある場合、cygwin を使用して Linux にクロス コンパイルするにはどうすればよいですか?
それぞれのソース コードを使用して libX11.so、libGL.so、および libGLU.so ライブラリを作成するには、cygwin が提供するクロスツールを使用する必要がありますか? または、クロスツール用に既にコンパイルされている場所を知っていますか (このクロスコンパイルは初めてです)。
明確にするために、私はWindows 7マシンを使用しており、cygwinのクロスコンパイルを使用して、アプリケーションをLinuxシステム用にコンパイルしようとしています。アプリケーションは OpenGL を使用します。ありがとう
linux - カナダのCrossbinutilsからARMへ
ARMプロセッサを使用するHPJornada720でJLimeを使用しています。私はすでにx86用にクロスコンパイルされたgcc(arm-linux-gcc)を持っています。私がやりたいことのアイデアを理解するのは非常に難しいので、このチャートを見てください:
arm-linux-gcc(私のUbuntuラップトップで)-> ARMプロセッサで実行するbinutils(私のARMデバイスでmips-elfをコンパイルすることを目的としています)
プログラムをMIPSLinuxにコンパイルするARMLinuxデバイスで実行するbinutilsを作成したいと思います。
私の質問は次のとおりです。
- どのように私は
./configure
これをする必要がありますか? - MakeFileで何かを作成または変更するには、追加のパラメーターを使用する必要がありますか?
- 私がやりたいことを理解しましたか?;-)
arm - Xscale ARM用のクロスコンパイラを構築するためのアドバイスはありますか?
私はPXA270Xscale開発ボード(Gumstixに類似)で遊んでいて、クロスコンパイラーが提供されていましたが、それはGCC3.3.3です。独自のクロスコンパイラを構築する方法を学びたいので、セットアップをカスタマイズできますが、ツールチェーンを正常に構築するためにcrosstoolsとcrosstools-ngを取得するのに問題がありました。私の主なニーズは、GCC4.2.Xとソフトフロートを使用する機能を使用することです。私はUbuntu9を実行しています。そのようなシステムのツールチェーンを構築するための推奨事項やアドバイスはありますか?
前もって感謝します、
ベン
iphone - cをObjectiveCに変換する
アプリで使いたいエアコン機能を見つけました。残念ながら、私のcの知識は素晴らしいものではありません。コードの最初のセクションは元のcコードを示し、2番目のセクションはObjectivecへの私の「翻訳」を示しています。私は3つの質問があります私は助けていただければ幸いです:
- cの対応する変数からObjectiveCの対応する変数への変数の変換は有効ですか?(コンパイラの警告はありません)
- 最後にfree()を使用することは許容されますか、それともObjectivecで別の方法で使用する必要がありますか
cコード:
Objective Cコード:
boost - クロスコンパイルブーストのトラブル
システムに Boost 1.42 をセットアップしようとしています。gcc を使用して通常の x86 アーキテクチャ用にコンパイルするには Boost が必要で、Texas Instruments の ARM プロセッサ用にはクロス コンパイルが必要です。
ARM プロセッサのツールチェーンは gcc に基づいています。gcc、ar、ranlib などのツールにはすべて、arm_v5t_le- というプレフィックスが付いています。クロス コンパイルに関するドキュメントは多少限られています。これが私が行ったことです: user-config.jam ファイルに以下を追加しました: using gcc : arm : arm_v5t_le-g++ ;
Bjam は、次のように Makefile から呼び出されます: bjam toolset=gcc-arm --toolset-root=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin <some other options>
ARM プロセッサ用にコンパイルし、次のようbjam toolset=gcc <some other options>
に x86 プロセッサ用にコンパイルします。オプション --toolset-root についてはこちらで説明しています。
次の問題に遭遇しました: ARM プロセッサ用のアプリケーションをビルドすると、次のリンカ エラーが発生します: libboost_system-mt.a: シンボルを読み取れませんでした: アーカイブにはインデックスがありません。ranlib を実行して追加します。アーカイブで arm_v5t_le-ranlib を実行した後、問題なくリンクします。私の推測では、bjam は arm-v5t_le-ar の代わりに ar を使用しています。どのアーカイバーを使用する必要があるかを bjam に伝えるにはどうすればよいですか?
メーリング リストでは user-config.jam にも指定するように言われましたが<archiver>
、残念ながら動作しないようです。同じリンカーエラーが発生します。
ありがとう。
linux - 特定のターゲットプラットフォーム用のクロスコンパイル環境のセットアップ
Ubuntu9.10ボックスにクロスコンパイル環境を設定したいのですが。これまでに読んだドキュメント(たとえば、これら のドキュメント)から、これにはターゲットプラットフォームのツールチェーンのコンパイルが含まれます。
私の質問は、特定のターゲットプラットフォームのツールチェーン内の各パッケージに必要なバージョンをどのように決定するかです。従うことができる経験則はありますか?
これは、上記のリンク先のWebサイトの1つにあるリストです。
binutils-2.16.1.tar.bz2
linux-2.6.20.1.tar.bz2
glibc-2.5.tar.bz2
glibc-linuxthreads-2.5.tar.bz2
gcc-core-4.2.0.tar.bz2
gcc-g ++-4.2 .0.tar.bz2
しかし、標準のUbuntu8.04およびCentOS5.3ボックスの実行可能ファイルを生成したいとします。必要なパッケージは何ですか?
私の主なニーズは、お客様のマシンで「/usr/lib/libstdc++.so.6:バージョン `GLIBCXX_3.4.11'が見つかりません」などのエラーを回避することですが、将来的にはさまざまなアーキテクチャにも対応したいと考えています。