問題タブ [weak-linking]
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++ - Does LLVM/Clang support the 'weak' attribute for weak linking?
In brief: does LLVM/Clang support the 'weak' attribute?
I'm learning some Arduino library sources (HardwareSerial.cpp to be more detailed) and I've found some interesting attribute weak
that I've never used before:
I've found it interesting and I've read that the linker should set it to NULL if it's not defined.
However, in my tests with Clang I'm unable to use it.
File lib.cpp:
File lib.h:
File main.cpp:
If I use g++ lib.cpp main.cpp -o main -DDEFINE_WEAK
I'm able to use it:
But if I use g++ lib.cpp main.cpp -o main
I'm unable to link the application:
To be more detailed about Clang:
What should I do? Is the weak
attribute supported by LLVM/Clang?
PS. I've already tried to rewrite lib.cpp in the way Apple describes and still get the same linker error:
ios - OC で実行するまで指定されていないクラスのプロパティを設定できますか?
ビューとして動的ビューを持つ固定コントローラーがあります。特定のビューのプロパティに値を設定したい。
コントローラーのコードは次のとおりです。
*特定の*ビューでは、このようなプロパティがあります。
それは私に思い出させます
宣言されていないセレクター「lineAdded」
実行すると、if条件をスキップして続行します。
私の質問は、それが属するクラスが指定されていない場合、プロパティを設定することは不可能ですか?
誰かが私を助けてくれることを願っています。前もって感謝します。
objective-c - シンボルの存在をチェックするときに否定演算子を使用できないのはなぜですか?
この質問への回答はif (x != nil)
、 と同じですif (x)
。
しかし、Apple のドキュメントには次のように書かれています。
注: シンボルの存在を確認するときは、コード内で明示的に NULL または nil と比較する必要があります。否定演算子 ( ! ) を使用してシンボルのアドレスを否定することはできません。
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithObjects/WorkingwithObjects.html#//apple_ref/doc/uid/TP40011210-CH4-の「nilでの作業」と矛盾しているようですSW22
c - CでWEAK関数として宣言されたREAL関数を使用する方法は?
C で WEAK 参照を使用するときに問題が発生します。次のような src コード構造があると仮定します。
//Eclipse C プロジェクトの構造
と:
//test_program.c
//source_sample.c
//dummy_Test.h
//dummy_TestWeakAttribute.h
//weak_test_case.c
//strong_test_case.c
画面に結果が表示されました:
REAL関数が使えなくなりました。以前のように宣言されているため、実際の関数を呼び出すことはすべてtest
不可能です__attribute__((weak))
。それで、このケースについて考えている人はいますか?test
主な目的は、私は本当の(in source_sample.c
)を呼び出したいのですが、属性も削除しません。 weak