問題タブ [librt]
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.
qt - librt を使用した QT Embedded のビルド
OMAP3 プラットフォーム用に QT 組み込み 4.7 をビルドしています。リンク段階では、clock_gettime にシンボルがないため失敗します。過去の私自身のアプリケーションでは、librt にリンクすることでこれを解決しました。QT埋め込みを間違って設定しましたか? make スクリプトを変更せずに librt をコンパイルするにはどうすればよいですか?
どうもありがとう
c - 非同期 I/O の librt と libeio の違いは何ですか? また、どちらか一方を選択する理由は?
質問を説明するために本文にもっと多くを入れたいのですが… タイトルは本当にすべてをカバーしています. 私が推測できる限り、librt
はより「公式」です (? の標準部分libc
です) が、Node.js が を使用していることも覚えていますlibeio
。どちらを調べるのにもっと時間を費やすべきですか? 携帯性はどうですか?API の違いは?
(担当者が 1,500 人以上いる人がこの質問に「libeio」と「librt」というタグを付けてくれるとありがたいのですが、私にはできません。)
python - Python に librt を表示させるにはどうすればよいですか?
python-dev を次のようにインストールしました。
P4Python を使い始めることができます。しかし、P4 をインポートしようとすると、次のようになります。
これを機能させるにはどうすればよいですか?
gcc - librt のリンクを確認する
#ifdef
librt がリンクされているかどうか、つまり gcc を使用してチェックできるマクロはあり-lrt
ますか?
c++ - -lrt を追加したときのコンパイラ エラー "undefined reference" のトレースが機能しない
大規模な組み込み Linux コードベース/SDK の開発に取り組んでいます。「Not Invented Here」 - Elbonian Code Slaves によってオフショアで発明され、さまざまなものを組み合わせています。
コードベースの一部はLive555 WIS-Streamerです。タイムスタンプに関連するわずかな問題を修正する (しようとする) ために、いくつかの呼び出しを挿入しました。これにより、コンパイルがいくつかのエラーclock_gettime(CLOCK_MONOTONIC, &ts);
で失敗しました。undefined reference to 'clock_gettime'
私はこれを以前に持っていましたが-lrt
、コンパイラ オプションに include を追加することで解決しましたがlibrealtime
、今回は役に立ちません。私は多くのグーグルとSOを読んだことがありますが、決定的な答えを見ることはできません.プロジェクトのメイクファイルは、Web全体で見つかった例よりもはるかに複雑です.
私がメイクファイルで犯した盲目的に明らかな間違いを指摘するか、チェーンをたどってコンパイラの期待を追跡して、どこを変更する必要があるかを確認するための助けが必要です。
このプロジェクトは、特定のハードウェア用の一連のライブラリを使用してクロスコンパイルされているため、-lrt
依然として必要であり (後の gcc ライブラリでは不要になっていることがわかります)、そのようなものを簡単に更新または変更することはできません。
これは、失敗したコンパイラ出力の一部であり、非常に冗長です。投稿サイズの制限を下回るように、パス名を短くしました。
残念ながら、投稿の長さの制限に達したように見えるため、メイクファイルの完全な出力または内容を添付できません! これはメイクファイルのほとんどの 1 つです...snip...
。おそらく何が起こっているのか推測できるように、多くの同様のエントリを切り取った場所に配置しました。
c++ - librt へのリンクが g++ と clang の間でパフォーマンスを交換するのはなぜですか?
仮想関数呼び出しのオーバーヘッドをテストするためのベンチ コードを含む @tony-d からのこの回答を見つけました。私がチェックしたのは、以下を使用したベンチマークg++
です。
私は彼よりも優れたパフォーマンスを得ました(比率は約2です)が、次で確認しましたclang
:
現在、比率は約 70 まで上昇しています。
次に、コマンドライン引数に気付き、-lrt
少しグーグルで調べた後、 and のためlibrt
にそれなしで試しました:g++
clang
ご覧のとおり、パフォーマンスがスワップされています。
について私が見つけたものからlibrt
、それはclock_gettime
およびその他の関連する時間計算に必要です (おそらく私は間違っているので、この場合は修正してください!) が、コードは なし-lrt
で正常にコンパイルされ、時間は私が見るものから正しいようです。
librt
リンクする/リンクしないことがそのコードに大きな影響を与えるのはなぜですか?
私のシステムとコンパイラに関する情報:
glibc - glibc の一部のみをコンパイルする
glibc に付属している多くのライブラリの 1 つだけをコンパイルしたいと考えています。
つまり、必要なのは librt ライブラリ (librt.a) の静的バージョンだけです。configure/make にそれを行うように指示する方法はありますか?
現在、configure の実行時に特定の CFLAGS を設定してから glibc 全体をコンパイルし、コンパイル後に librt.a を単純に抽出するプロセスをセットアップしていますが、これは確かに 99% の無駄と 1% の収率のようです。
編集:
提案されたコマンドmake rt/librt.a
は
完全なmake実行の出力を見ると、librtは次のように構築されていました
残念ながら、このコマンドも良い結果をもたらしません。
興味深いことに、make を完全に実行した後、提案されたコマンドを実行すると、