Cygwin + MinGW + GCC 相談室 Part 8
続き・・・
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のソースはどこにあるのか!? MSYS2のwindresとcppをコピーして、自分のプログラムで使いたいんだけど、
windres.exeとcpp.exeを正しく実行するにはどうすればいいでしょうか?
最小構成にしたいと考えています。 include
lib
とexe
で試す
足りないものは追加 >>292
ありがとー、コンパイルできるようになった。 msys2で取得したgtk(gtkmm)をcmakeでmakeファイル作ったり
code::blocksでmsys環境外で利用したりがやっとわかってきた
具体的にはpacmanで取得するmakeやpkg-configはmsysではなく
mingwで統一しないとダメらしい しっかし何でGTKはバイナリのダウンロード止めちまったんだろうねえ?
いやまあ確かに更新はmsys2のpacmanでやった方が楽だろうけどさ
code::blocksのプロジェクトテンプレートが使えないとか
IDE使った導入に問題がある msys2のpacmanで取得したwxWidgets試してみたがコンパイルして実行してみるとエラーが出て駄目だった
なんかMismatchがどうとか
しようがないのでソースからビルドしたら今度は実行出来た
外部のIDE使うときはwx-configの出力結果をprefix調整してコピペ