Cygwin + MinGW + GCC 相談室 Part 8
>>147
昔々、パックマンというゲームとゲームのキャラクターがあった。
黄色い丸に大きな口がパカパカ開いて動くようなキャラだった。
スーパーマリオブラザーズが出てくると、それを真似て、手と足がついて横スクロールゲームになった。
「ゲーム パックマン」でググれ。 >>148
あれはマリオがパックランドをパクったんや そこらへんにころがっているpexports.exeには、
ウイルスがしこまれてるかもしれないから、気をつけて。 MSYS2でパッケージを更新するときは、update-coreコマンドを実行後、bashを再起動してから
pacman -Suするのが正しいやり方。 Cygwin g++ですが、5.2.0 だと string が使えないです。コンパイルはできるのに、文字が表示されません。
4.9.3だと正常に表示されます。なぜでしょう・・ 1つのcygwinを2つのOSからアクセスするとエラーでる。
rebaseとかやれば直るけどまた他方でエラーになる wstringだとコアダンプしました・・・なんかstringの使い方がわかってないみたいです。出直します。。 1つのcygwinを2つのOSからアクセス?
意味がわからんが、どうでもいいやw どうでもいいと言う人は実はどうでも良くない
本当にどうでもいい人はレスしない >>159
その理屈だと「どうでもいい」という言葉を言えなくなるなw 訊ねられてもいないのに自分からどうでもいいという場合はまぁあれだな >>158は
「ちょっと心に引っかかったが、まあ解明をそんなに強くは望んでないよ
だからこの件に関して別に返事しなくていいからね」
って意思の表明だろうからここから発展する物は何も無い cygwinでバージョンを指定してpackageをインストールしたい場合は
どうしたらよいでしょうか。
たとえばpython3.1など setup.exeでは3.2と3.4があることを確認できましたが、3.1はありませんでした。
cygwin package searchにも3.3は出てこなかったのですが、これはcygwin用のパッケージが
無いと言うことでしょうか。 3.1なんて2.7より遺物、考えなくていい
使いたいならパッチを当ててビルドするしかない
https://github.com/cygwinports/python3 >>166
以前あったけど今見つからない、という趣旨だとすると
その通り、選択したミラーサーバに残ってないという理解でいいと思う MSYS2 で Windows API 関連のヘッダファイルは /mingw32/i686-w64-mingw32/include やその下のディレクトリにありますが、
デフォルトではここはサーチパスに入ってないですよね。
使いたければ -I オプションで陽に指定するのが妥当なんでしょうか?
なんか不格好な気がするんですが。 ん?MinGW-w64 Win32 Shellから起動すれば入ってるんじゃ? シェル(bashやらzshやら)から起動しないと/から始まるパスが読めない minttyはputtyをベースにしてるからな。
良いのは当然。 cygwinをダウングレードもしくは古いバージョンを再インストールするにはどうしたらよいですか? msys2のmakeでこの行が通らない
@CROSSCOMPILING_FALSE@ @(cd tests; $(MAKE) all quiet-test)
なぜだー C++11を古いウィンドウズ(Windows98)で動かしたいんだが、叶姉妹だろうか? You should go to another thread, fuck. 口が十もある女は市にでてもその女は未だうれていない。 くらいのところかな。 make
でビルドするの時に、VSにあるような、MT MD に類するの設定はないのでしょうか? >>184
LDFLAGS='-static' makeとか? <iostream>使うと、EXEがメガバイト級にバカでかくなる。
-Os -sとstrip --strip-allを使ってもあまり小さくならない。 windows.h+crt+STLのウィンドウアプリで
MinGW-w64のMingw-buildsでg++4.8.5/4.9.3/5.3.0試してみたんだけど
エラーと警告の行番号が+1行ずれて表示される。ヒント行内容表示も同様
列はなぜかあってるので、エラー状態を次の行に持ち越したからじゃないと思う
ソースコードはShift_JISコメントありでCRLFもちろん-finput-charset=cp932付き
検索しても知恵袋が1個見つかる程度だった。英語情報はうまく検索ワード絞り込めない <iostream>を使うとsegmentation faultになるバグがあるようだ。 バグ追跡にイタズラをして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ってのをダウンロードしたんだけど、このスレの仲間なの?