Cygwin + MinGW + GCC 相談室 Part 8 (985レス)
Cygwin + MinGW + GCC 相談室 Part 8 http://mevius.5ch.net/test/read.cgi/tech/1411399211/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
202: デフォルトの名無しさん [] 2016/07/02(土) 17:08:25.09 ID:QBTa/uvw 過疎っているけど・・・質問させてください Windows10Pro 64bit上にMSYS2をインストールしてMINGW64を主にシェルとして使っているのだけど Linux上では正常に動いてMINGW64上ではSegmentation Faultになるプログラムが有るのです どうもグローバル変数の宣言がうまく処理できていないようなんだけどコンパイルオプションとかで対処できないでしょうか? ソースをコピペします main.cpp------------------------------------------- #include "class2.h" int main( int argc, char *argv[] ) { //Class2 object2; return 0; } class1.h -------------------------------------------- #include <string> #include <map> class Class1 { std::string type; static std::map<std::string, Class1 *> map; public: Class1(std::string s); ~Class1(); }; class1.cpp ------------------------------------------- #include <iostream> #include "class1.h" Class1::Class1(std::string s) : type(s) { std::cout << "Class1::Class1 type=" << type << std::endl; map[type] = this; } std::map<std::string, Class1 *> Class1::map; Class1::~Class1() {} http://mevius.5ch.net/test/read.cgi/tech/1411399211/202
203: 202 [] 2016/07/02(土) 17:11:44.83 ID:QBTa/uvw 続き・・・ class2.h ------------------------------------------ class Class2 { public: Class2(); }; class2.cpp --------------------------------------- #include <iostream> #include "class2.h" //std::map<std::string, Class1 *> Class1::map; #include "class1.h" Class1 object1("XXX"); Class2::Class2() { std::cout << "Class2::Class2 " << std::endl; } 以上です http://mevius.5ch.net/test/read.cgi/tech/1411399211/203
205: デフォルトの名無しさん [sage] 2016/07/02(土) 21:18:12.40 ID:k5Obze0x >>202 規格では異なる翻訳単位(class1.cpp, class2.cpp)で定義されてる 静的記憶期間を持つオブジェクト(Class1::map, object1)の初期化順序は未定 コンパイルオプションでどうにかなるものじゃないので設計を見直す・ソースを修正する http://mevius.5ch.net/test/read.cgi/tech/1411399211/205
208: 202 [] 2016/07/02(土) 22:05:41.61 ID:Pv/FT/v3 >>204-207 レス有難う御座います。 人がいないと思ったら居るんですね。ありがたや >>205 そうですか、あるアプリケーションをコンパイルしたら上記のソースのような箇所が有りまして・・・ 姑息ですがグローバル変数の定義を直前に書いて凌ごうと思います。 よく分からないのがstd::mapではエラーになるけどstd::stringだと動いたりするんですよね 実際のソースではQMapの箇所で引っかかったりしています http://mevius.5ch.net/test/read.cgi/tech/1411399211/208
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.051s