問題タブ [linker]
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.
resources - コンパイル時のリンク プロセスに関する優れたリソース
私はしばらくの間コーディングを行っており、コンパイルのリンク段階は非常に簡単だといつも思っていましたが、最近アプリにプラグイン システムを追加する必要があり、かなりの数のコンパイルと実行時の問題に遭遇しました。この問題に関する私の完全な知識不足。今では問題なく動作し、その過程で多くのことを学びましたが、このテーマについてまだ学ぶべきことがたくさんあることに気付いたので、このテーマをもっと探求したいと思いました. それで、「コードセクション、シンボル、リンク、動的/静的ライブラリ...」ビジネス全体に関する記事、ブログ投稿、または本について誰かが良い指針を持っているかどうか疑問に思っていました.
私は gcc と ld を使用して Linux で開発していますが、M$ のやり方にも興味があり、知識を渇望しています :)
ありがとう!
c++ - __gxx_personality_v0とは何ですか?
これはOS開発サイトからの中古の質問ですが、どこにもまともな説明が見つからなかったので興味津々でした。
gccを使用して自立型C++プログラムをコンパイルおよびリンクすると、次のようなリンカーエラーが発生することがあります。
これは明らかに、このシンボルがlibstdc ++で定義されているためです。これは、独立した環境では欠落しています。問題を修正するには、このシンボルをどこかに定義する必要があります。
どちらがいいのですが、魔法のように機能するものは好きではありません...それで、問題は、このシンボルの目的は何ですか?
arrays - 2 つのアレイをどのようにリンクしますか?
私は基本的なプログラミングのクラスに参加しており、すべてが疑似コードで行われています。
私の質問はこれです: 2 つのアレイをどのようにリンクしますか?
生徒の名前をリストする 1 次元配列と、各生徒の上位 8 点をリストする 2 次元配列があります...これはすべて問題ありませんが、今度は配列を生徒別に並べ替える必要があります。名前。私はオンラインで突っ込んで、本の章を2回読んでいます.2つのアレイのリンクについて簡単に言及しているだけで、例は示していません。
それが助けになるなら、私たちはバブルソートを使用しています。それは私がかなり慣れているものです...名前をソートすることはできます。それは簡単な部分ですが、グレードをソートする方法がわからないので、乱れる。
入力していただきありがとうございます!
追記:わかった!私はグレッグ・ヒューギルが言ったようにやった。彼の提案にコメントを入れたとき、そのアイデアが思いつくまでコード行をランダムに挿入し始めました...見栄えがよくありません (1 つのモジュールは名前を交換し、別のモジュールはグレードを交換し、さらに 3 つ目はその後も交換しました)。個々の学生の成績を多次元配列で以前に交換する)が、実際には機能しているように見えました...コンパイラがなく、疑似コードを実際のコードにする十分な知識がないため、言語でテストする方法はありませんダウンロードする予定だったのですが、タイプした紙にとても良さそうです!
メモでも述べたように、皆さんの迅速で有益な洞察に感謝します。実際、今夜返信が来るとは思っていませんでした。皆さんの助けにもう一度感謝します!
ジェフリー
gcc - 共有オブジェクトのシンボルを LD から非表示にします
同じシンボル名がエクスポートされることがある 2 つのサードパーティ ライブラリがあります。実行可能ファイルがロードされると、通常、ldは間違ったものを選択し、結果としてクラッシュします。私はこれらのライブラリの内容についてあまり多くを行うことができないので、ldに適切な実装を見つける方法を指示する方法があるかもしれません。
OS - Solaris 10、私のプログラムは autoconf/autotools/gcc でビルドされています。競合するライブラリはlibclntsh (Oracle ドライバーの一部) と OpenLDAP です。残念ながら、Oracle の LDAP クライアントの実装は使用できません。OpenLDAP が持つ多くの機能が欠けています。
編集: リンクは次のとおりです: libclntsh.so->A.so->MAIN<-B.so<-libldap_r.so
linux - ld は既存のライブラリを見つけることができません
この Debian lenny システムでアプリケーションを g++ にリンクしようとしています。ld は、指定されたライブラリが見つからないと不平を言っています。ここでの具体的な例は ImageMagick ですが、他のいくつかのライブラリでも同様の問題が発生しています。
私はリンカを次のように呼び出しています:
ld は不平を言います:
ただし、libmagic は存在します。
この問題をさらに診断するにはどうすればよいですか? また、何が間違っている可能性がありますか? 私は完全にばかげたことをしていますか?
object - ELF と PE の基本的なリンク プロセスのしくみ
リンカがどのように機能するかについて、私はいつも混乱しており、検索するのが難しいテーマです。
私の質問を実証し、回答の枠組みを提供するために、これまでに知っている (または知っていると思う) ことを書き留めておきます。私は非常に間違っているかもしれません。:)
まず、各 .cpp ファイルが中間ファイルに組み込まれます (Posix/ELF の場合は .o、Win/PE の場合は .obj だと思います)。この中間ファイルには、ビルド元の .cpp によって定義されたすべてのシンボルが含まれており、適切に解決する必要がある外部リンクについての指示が含まれています。これの拡張として、Posix システムでは .o ファイルを .a ファイルに結合できます (これは結合以上のことをしていないように見えますが、これはどのコマンドですか?)。.lib は Posix .a ファイルに相当する Win/PE ですか?
次に、中間ファイルがリンクされ、外部依存関係が解決され、実行可能ファイルが作成されます。手順がありませんか?
ありがとう!
c - Cygwin アプリケーションを静的にコンパイルできますか?
cygwin は静的にコンパイルされたバイナリを許可しますか? これにより、cygwin1.dll がターゲット マシンの PATH にある必要がなくなります。
c++ - エラーLNK2005:_DllMain@12はMSVCRT.libですでに定義されています
このリンカーエラーが発生します。
mfcs80.lib(dllmodul.obj):エラーLNK2005:_DllMain @ 12はMSVCRT.lib(dllmain.obj)ですでに定義されています
このバグを取り除く正しい方法を教えてください。このバグについてマイクロソフトサポートサイトで解決策を読みましたが、あまり役に立ちませんでした。
PlatformSDKでVS2005を使用しています
visual-studio-2008 - Visual Studio 2008 C++ の問題
二次方程式を計算するプログラムを作成しようとしています。実行すると、次の 2 つのエラー メッセージが表示されます。
これは、コードの最後の行を ... から変更した後です。
に
その変更を行う前に、C2563 と C2568 の 2 つのコンパイラ エラーが発生しました。友人のコンピューターでは、プログラムは完全に機能しました。
これを修正するにはどうすればよいですか?
delphi - exeファイルの名前を変更する方法
一般的なバーティカル マーケット アプリケーションがあり、それを aaa.exe と bbb.exe という 2 つの別個のプログラムとしてパッケージ化したいとします。Delphi リンカを使用して、DPR と同じ名前ではない EXE/DLL ファイルを作成する方法はありますか?
このエラーが発生するため、ファイルの名前を変更することはできません
一般に、実行可能ファイルの名前を変更できますが、これはできません。この点で私の頭がおかしいことを指摘するコメントをありがとう。明らかに通常の問題ではなく、必ずしも Delphi に関連しているとは限りません。
私は Delphi 7 を使用しています (2007/2009 で可能であれば、アップグレードのためにより多くの飼料が必要なので、それは素晴らしいことです)