[過去ログ] C++相談室 part165 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
534: デフォルトの名無しさん (ワッチョイ 7e9a-NsVU) [sage] 2024/11/08(金) 17:26:41.87 ID:k0cYSKPq0(1/5) AAS
g++とclang++が混ざった環境なのですが、g++でコンパイルしたバイナリはstd::stringとか
名前に__cx11というプレフィックスが付き、一方clang++の方は__1というものが付くようです

とりあえず、clang++の方で__cx11が付くようなバイナリを生成するにはどうしたら
いいでしょうか?
535: デフォルトの名無しさん (ワッチョイ 7e9a-NsVU) [sage] 2024/11/08(金) 17:28:48.87 ID:k0cYSKPq0(2/5) AAS
すみません、__cx11じゃなくて__cxx11でした
537: デフォルトの名無しさん (ワッチョイ 7e9a-NsVU) [sage] 2024/11/08(金) 17:52:36.03 ID:k0cYSKPq0(3/5) AAS
>>536
536(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ f532-JeGG) [sage] 2024/11/08(金) 17:41:34.61 ID:Me1tPYCI0(1) AAS
名前だけ合わせても具体的な実装方法が違えばどうせクラッシュするから意図的にマングルルールを違えている。
外部リンク[html]:gcc.gnu.org
なるほど、要は「C++コンパイラ、混ぜるな危険」ということでしょうか?
540
(1): デフォルトの名無しさん (ワッチョイ 7e9a-NsVU) [sage] 2024/11/08(金) 18:18:53.42 ID:k0cYSKPq0(4/5) AAS
>>539
539(3): デフォルトの名無しさん (ワッチョイ a901-7tmY) [sage] 2024/11/08(金) 18:14:37.25 ID:6Qfff3nN0(2/2) AAS
C++コンパイラでコンパイルするにしても
ソースコードをCの範囲に留めて
関数プロトタイプを
extern "C"
すれば大丈夫だよ
なるほど、例えばこんな感じなら大丈夫なんですかね?
g++でコンパイルされたバイナリのグループAとclang++でコンパイルされたバイナリの
グループBがあったとき、AからB(またはその逆)を呼ぶときは必ずCリンケージの関数
経由にする、とか....
542: デフォルトの名無しさん (ワッチョイ 7e9a-NsVU) [sage] 2024/11/08(金) 18:35:59.90 ID:k0cYSKPq0(5/5) AAS
>>541
541(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 71e8-JeGG) [sage] 2024/11/08(金) 18:25:46.25 ID:Evz7xgHe0(1) AAS
>>540
OK。
C インターフェイスの範囲ではどちらも同じ ABI (Application Binary Interface) に従ってるはず。
なるほど
皆さんどうもありがとうございます
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.030s