問題タブ [linkage]
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++ - インライン関数のリンク
私は2つのファイルを持っています:
1はmain.cppです
##2はgcd.cppです
ここで問題となるのは、2つのファイルを1つコンパイルすると、明らかな理由で問題はありませんが、リンク時にエラーが発生します:main.cpp:(。text+ 0x100): `min(int、int、int、int )'min()の呼び出しを含むステートメントにコメント行を付けると、機能します。さて、なぜ世界でabs()が機能しているのに、gcd()は機能しているのに、min()は機能していないのですか?Linuxでg++を使用しています。
c - cリンケージの混乱
私は中級レベルのCプログラマーです。私はCで簡単なコードスニペットを歩いていました
変数a、b、c、およびdのリンクは何ですか。a
デフォルトで外部リンケージ、、、b
およびc
内部リンケージがあると確信していますd
。私の理解は正しいですか?
これがこのサイトでの私の最初の質問です。
c++ - C++0x ドラフト標準のこの部分について説明できる人はいますか?
ISO 標準ドラフトから: § 3.0/9
:
n3234 言います:
複数の翻訳単位で使用される名前は、各翻訳単位で指定された名前のリンケージ (3.5) に応じて、これらの翻訳単位で同じエンティティを参照する可能性があります。
誰かがこの点を例で説明できますか?
その声明は実際に何を言っているのですか?プログラムの観点からこの点を証明できる人はいますか?
terminology - 動的バインディングと動的リンク
Dynamic Binding C++から引用、
動的バインディングは動的リンクと直交しています...
直交の意味をどう理解すればいいのだろうと思っていたのですが?
ソースコードを機械語にコンパイルすることは深層に行くようなものであり、さまざまな機械語コードを連結することは水平に行くようなものであり、互いに直交している.
(静的/動的)名前バインディングはコンパイルの概念です
静的/動的リンクはリンケージの概念ですか?
動的リンクの場合、関与するバインディング、つまりオブジェクト (データおよび/またはコード) と識別子との関与する関連付けは動的バインディングですか?
ありがとう!
c++ - matlab mex ファイルと C++ dll (Windows)
クラス Test を持つ DLL があります。ヘッダ:
およびソース:
今、私はmexファイルからそれを使用しています:
問題は、その変数str
がメソッドに正しく渡されないことですdoit
。メソッド内にはラビッシュが含まれています。これは、参照によって渡されたすべてのオブジェクトで発生することがわかりました。私が間違っていることは何ですか?助けてください。
PS: 宣言を 'int doit(const char *)' に変更すると、すべて正常に動作します。
c++ - 名前や型が特定の言語リンケージを持つとはどういう意味ですか?
(c) ANSI ISO/IEC 14882:2003、127 ページによると:
リンケージ仕様のネスト。リンケージ仕様がネストすると、最も内側の仕様が言語を決定します。リンケージ仕様は有効範囲を確立しません。リンケージ仕様は、名前空間スコープ (3.3) でのみ発生するものとします。リンケージ仕様では、指定された言語リンケージは、宣言によって導入されたすべての関数宣言子、関数名、および変数名の関数型に適用されます。
これはどういう意味ですか?たとえば、f2()
関数にはどのようなリンケージがありますか? C または C++ 言語のリンケージですか?
@Johannes Schaub が指摘したように、これが標準で何を意味するかについての実際の説明はないため、異なるコンパイラでは異なる解釈が可能です。
オブジェクトファイルの違いを説明してください:
- C言語リンケージとC++言語リンケージを持つ関数の名前。
- C 言語リンケージおよび C++ 言語リンケージを持つ関数の型。
flash - ActionScript 3 /FlashCS5でのシンボルリンケージ
私はFlash/ActionScriptを初めて使用し、一部のシンボルのカスタム基本クラスを作成するのに少し問題が発生しました。
いくつかの惑星を含むフラッシュファイルがあり、各惑星に関する情報を保存したいので、各惑星の最低気温や最高気温などを含むPlanetクラスをactionScriptファイルに作成しました。
メインのフラッシュファイルには、カスタム画像を使用して惑星ごとに作成されたシンボルがあり、惑星ごとに異なるアニメーションがあります。私がやりたいのは、これらの各シンボルのクラスを惑星に設定することです。元々、ライブラリのリンケージを惑星に変更するだけでこれを行いましたが、これは1つのシンボルに対してのみ機能し、別のシンボルに変更すると機能しなくなりました。 、同じクラスに設定することはできません。そこで、右クリックしてプロパティに移動し、「export for actionscript」を設定してから、クラスに「Mercury」または「Venus」という名前を付け、基本クラスをPlanetに設定しました(planet extends movieclip)。金星が見つからないとしても、エクスポート時に生成されることを保証します。コマンド+Enterキーを押すと、次のコンパイル時エラーが発生します。
と
1つのクラスだけで動作している場合、デフォルトのコンストラクターを使用してPlanetのインスタンスを作成し、Mainメソッドでそのクラスの「initialize」関数を呼び出します。これにより、インスタンス変数とイベントハンドラーを設定できます。後で使用するため。フラッシュコールを作成して、他のシンボルを1つにまとめることなく、他のシンボルのPlanetのインスタンスをさらに作成する方法を知る必要があります。
ヒントをいただければ幸いです。ありがとう。
actionscript-3 - スーパークラスのテキスト要素に到達するにはどうすればよいですか?
次のシナリオがあります。
私はMovieClipを持っていて、Aという名前のリンクを作成しました。
何が許可されていますか?どうすれば問題を解決できますか?
アップデート
わかりました、これは正確なシナリオですが、私がまだ解決できなかったより単純なシナリオです。
元のシナリオは、「MovieClip」を拡張する拡張user_bg_me
という名前のリンケージを持つと呼ばれるMovieClipがあるというものです。user_bg_me
user_bg_generic
クラス内user_bg_generic
では、ムービークリップ自体の内部の要素を変更できるようにしたいと思います。super.element_nameを使用すると、プロパティが見つからないというエラーが発生します。
何か案は?
grails - java.lang.LinkageError:Grailsプロジェクトでのローダー制約違反
POI(poi-3.7とpoi-ooxml-3.7を含む)を使用してGrailsプロジェクトを構築しました。プロジェクトのBuildConfig.groovyファイルの依存関係ブロックにこれら2つの外部ライブラリを追加しました。私がそれをコンパイルしたとき、何も奇妙なことはありません。しかし、そのプロジェクトに対してコマンド「run-app」を呼び出すと、以下のスタックトレースでエラーが発生しました。
そして、これが私の構成です:
これを解決するにはどうすればよいですか?どうもありがとう!
c++ - C リンケージを持つ非 extern 関数
外部リンケージなしで C リンケージを持つ関数を宣言することは可能ですか? コンパイルしようとすると
私は得る
これはある意味で理にかなっています。ではnamespace { extern "C" void f() {} }
、extern
指定子は匿名名前空間の制限されたスコープをオーバーライドするようです。
これが不可能な場合、関数ポインタを C に渡すときに問題になりますか?