Cygwin + MinGW + GCC 相談室 Part 8
バグ追跡にイタズラをしてMinGWの開発を妨害している輩が居るようだ。 MSYS2使ってるのに配布元飛び越えていきなり本家に迷惑かけるな
しかもどうせおま環 mingw-w64-crtに ca451a7 の変更が取り込まれたバージョン(v5.0-rc1等)を使ってるなら原因はこれ。
https://github.com/Alexpux/MINGW-packages/issues/1104
mingw-w64のmasterブランチは 5981c02 でRevert済み。
[r4619-ca451a7]
https://sourceforge.net/p/mingw-w64/mingw-w64/ci/ca451a7a45d4876065edc6755f8aab8095914b04/
[r4626-5981c02]
https://sourceforge.net/p/mingw-w64/mingw-w64/ci/5981c0281b1f65b8f9b38b13f504f8af3f6ff209/
MSYS2-Packagesのmingw-w64-crtは該当バージョンのままなので、要更新な状態。(もしくは古い物を使う)
> msys mingw-w64-cross-crt-git 5.0.0.4624.4c13e3f-1
上記内容に該当してるのであれば、GCCへのバグレポートは取り下げて、
Alexpux氏にMSYS2-Packagesのcrtも更新する様伝える事。 $ pacman -Sy
$ pacman -Syu
したら直ったよ。最新版じゃなかったみたい。 MSYS-Packages内のPKGBUILDの内容を見るの忘れてた。。
crtは最新verではないけどPKGBUILDのパッチ処理でRevert済みだったわ。
>>193
githubでコメントしたみたいだけど、手間かけさせてスマン。 今の最新のmsys2にアップデートするとbinフォルダのupdate-core.exeが消えてしまうな
バックアップしといてアップデートが済んだら書き戻しといた方がいいようだ Cygwin終了のおしらせ
ttp://japan.zdnet.com/article/35080338/ >>197
Visual Studioが既にGitに依存してるからな >>195.196
pacman -Syuするとなんか二段階になっているけど前からだっけ?
update-coreいらなくなるなら進歩だね
:: Starting core system upgrade...
何も行うことがありません
:: システム全体の更新を開始... msys2をConEmuで使っているんですが
midnight commanderを使うと表示が崩れてしまいます
試しにmitterでやるとうまくできました
ConEmuでも正常に表示させる方法はあるでしょうか
よろしくお願いします 200です
mitter・・・x
mintty・・・o
いつも使っていなかったので間違えました
すいません 過疎っているけど・・・質問させてください
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() {} 続き・・・
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;
}
以上です class1.cpp
Class1::~Class1() {}
よく知らないけど、仮想デストラクタなんて、直接呼ぶもの?
こういうのは、実装・処理系が呼ぶんじゃないの?
君は、C++をかなり知っているの? >>202
規格では異なる翻訳単位(class1.cpp, class2.cpp)で定義されてる
静的記憶期間を持つオブジェクト(Class1::map, object1)の初期化順序は未定
コンパイルオプションでどうにかなるものじゃないので設計を見直す・ソースを修正する それデストラクタの実装書いてるだけじゃないの?
そもそも仮想ですらないだろ >>204-207
レス有難う御座います。
人がいないと思ったら居るんですね。ありがたや
>>205
そうですか、あるアプリケーションをコンパイルしたら上記のソースのような箇所が有りまして・・・
姑息ですがグローバル変数の定義を直前に書いて凌ごうと思います。
よく分からないのがstd::mapではエラーになるけどstd::stringだと動いたりするんですよね
実際のソースではQMapの箇所で引っかかったりしています >>208
まあ、仕様で未規定ってなってるんだから、何が起きても文句は言えない部類だと思うよ。
良くわからなくて当たり前って事ね。 本家ようやく6.1.0来たな
Distroはsjljだから嫌いでちゅ gccなら__attribute__((init_priority(N)))使える >>210
嫌なら自分でビルドすれば良いんじゃないのか スレチだったら申し訳ないのですが
Windows10からCygwin/Xでリモートのサーバに
Xwin -query [鯖のIP]
とやった場合、キーボードがUSキーボードに変更されてしまうのですが
日本語キーボードのままにしておく方法はないでしょうか?
なお
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
に「IgnoreRemoteKeyboardLayout」(dwordで1)を入れる方法は効果なしでした 補足すると
Xwin -query [鯖のIP] -xkbmodel jp106 -xkblayout jp
でもダメでした
あとsage忘れ申訳ない bashのせいらしい
Windows10 Anniversary updateで知らぬ間にSSHdが起動している
http://yasuhide.blog.jp/archives/48155574.html あるプログラムをgcc (4.9.x)でコンパイルすると、-O2より-O0の方が
1.5倍ほど高速になってしまうのですが、考えられる原因はなんでしょうか?
普通のC++のコードだと思いますが、強いて言うと巨大なswitch caseが
あります(300 case)。MinGWでもLinuxでも同じ傾向になります。 >>222
なるほど、コンパイル時間の話なら十分ありえるね プロファイルとると面白い記事になりそうだな
最悪再現ソースだけでも 221です。高速なのは「実行時間」です。コンパイル時間ではありません。
やっぱり普通じゃないということですね。
アセンブラに出力して、地道に解析してみます。 いえ、アセンブラで解析するスキルが無いから、ここで質問してみたのでした。 >>226
コードを出さないとわからんよ。情報が少なすぎる cygwinと一緒に配布されているmingwはコンパイラはgcc-5なのに
wxWidgetsはgcc-4.8でコンパイルされててgcc-5と互換性がないとかいう糞仕様。
C++ABIが変更になってるせいだけど、影響ありすぎて迷惑 gcc5で旧ABIを使うか全部新ABIでリビルドすればいいだけ そもそも、cygwin+gccなんて環境でつくってるようなところなんてあるのか? VSで作ると重いんだよ
メモ帳で簡易的に作れるだろ gnu autotools と emacs じゃないと作る気になれん 質問です。MSYS2インスト後、pacman -Sy mingw-w64-i686-toolchain でg++ 6.2.0 が入ったのですが、
都合で、g++ を 5.4.0あたりにデグレードしたいのですが、ググってもよくわかりません。
どうすれば可能ですか? >>237
pacmanはデグレード管理できないことがわかりますた。使えないっすねぇ。
Cygwin+Mingw-64環境の方が使いやすいわ -std=c++11オプションをつけるとbits/stdc++.hがインクルードできない 質問です
MinGWでincludeでエラーがでるんですが、パスを教えてください!
お願いします ------------------------------------
#
# Usage:
#
# $ source setenv_gcc540
#
MINGW64=c:/mingw-w64/i686-5.4.0-win32-dwarf-rt_v5-rev0/mingw32
if [ -d "/usr/i686-w64-mingw32/bin" ]; then
umount /usr/i686-w64-mingw32
mount ${MINGW64} /usr/i686-w64-mingw32
else
mount ${MINGW64} /usr/i686-w64-mingw32
fi
export MINGW_HOME=/usr/i686-w64-mingw32
export PATH=${MINGW_HOME}/bin:${MINGW_HOME}/i686-w64-mingw32/bin:${PATH}
export LIBRARY_PATH=${MINGW_HOME}/lib:${MINGW_HOME}/i686-w64-mingw32/lib:
export C_INCLUDE_PATH=${MINGW_HOME}/include:${MINGW_HOME}/i686-w64-mingw32/include:
export CPLUS_INCLUDE_PATH=${C_INCLUDE_PATH}:${MINGW_HOME}/i686-w64-mingw32/include/c++:
------------------------------------ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) >>237
>都合で、g++ を 5.4.0あたりにデグレード
俺も自力でビルドした5.4を運用中
ソフト板のサクラエディタにも書いたが、msys2のgcc-6.2でサクラエディタをビルドするとクラッシュした。
おかしいなと思って6.1をビルドして再びビルドしたら今度はビルド中にセグメンテーションっぽいエラーで止まる
試しに以前野良ビルドした5.2でビルドしたら正常にビルドでき、エディタもクラッシュせず使えるようになった
本家のバグレポート見てもc++のビルドが途中で止まる or ぶっ壊れるとか無いみたいだし、おま環なのかなー 昨日Dev-Cってのをダウンロードしたんだけど、このスレの仲間なの? おそらく自演の誘導なのだろうが、面白そうなので弄ってみる・・ Distroは6.3.0出てるのか・・・本家の方ももうじきだろうな
待つか、それともDistroを入れるか 本家MinGWの成果物はMinGW-w64の32bit sjljでスタティックリンク可能で
dwarfでは無理っていう考えで合ってます? MSYS2、パッケージ更新した後コンソール起動させるとエラーも吐かないまま強制終了するんだけど
どうすればええの compinit で落ちるわ
原因ワカンネーからとりあえず compinit コメントアウトしとくわ
>>257
治んなかった OSのバージョンもパッケージのバージョンも書かずに・・ ここ見て msys2-runtime-devel msys2-runtime ダウングレードしたら動いた
https://github.com/Alexpux/MSYS2-packages/issues/793 windows2000でmingw-get-inst-20120426使っているが
インストール時にすべてdownload failedになる
12月ごろからだと思うが何か仕様でも変わったかな msys2のmingw 64でgit stashをやると
': 有効な識別子ではありません : export: `dashless
とかエラー出てるし
治らないし
誰か試して解決策教えてください printf(%b,xx)
2進法での表示はできないのかな? あり
てっきり できるかなと何回もやってみたけど・・ cygwin の xserver を使っている人いる?
同じく cygwin の freeGLUT を使っている人いる?
描画されないんだが,まず何を確認したらいい? >>271
cygwinのXserver使ってます。 >>271
まずは
/var/log/xwin/XWin.0.log
かな? 実行時に標準エラーに
libGL error: required WGL extension WGL_ARB_multisample is missing
libGL error: required WGL extension WGL_ARB_multisample is missing
が出る,このWGL がよくわからない.
ログは次のとおり
http://codepad.org/hu8zMgSM テストプログラムは
http://codepad.org/iE1MX9wa
コンパイルは
$ gcc glut03.c -lglut -lGLU -lGL
で通る.
なにか経験談のようなものでもいいので,情報がほしい
よろしくお願いいたします. 拡張機能が使えない?
有効になってないか、そもそも対応してないとか
根拠は無い DLLのリンクは通ってるの?
わからなかったら
objdump -p glut03.exe | grep DLL
してみたら? 実行時のログが貼ってあるのにリンクがどうのとか言い出すレベル 一番良い方法はLinuxをやめてWindowsにする事だよ cygwinインストール時に/etc/postinstall/0p_000_autorebase.dashで止まって進みません
set-up再起動したり本体再起動してもダメでした そこはrebaseに時間かかる場合は止まっているように見える
ディスクアクセスが続いている状態なら辛抱強く待つべし MinGW + freeglut か
Visual studio C/C++ + freeglutの方がいいと思うけど…… 回答ありがとうございました
cygwinはインストールに時間がかかってしょうがなかったのでMinGWとテキストエディタにTerapadを使うことにしました http://www.msys2.org/
msys2-x86_64-20161025.exe
SHA256: 2c198787ea1c4be39ff80466c4d831f8c7f06bd56d6d190bf63ede35292e344c
$ sha256sum.exe msys2-x86_64-20161025.exe
2330957bc431fffb5fd359e40c20b2464be34ebbd1bfb531a7b09fba0c2808f7 *msys2-x86_64-20161025.exe プリプロセッサのcppのソースはどこにあるのか!?