Cygwin + MinGW + GCC 相談室 Part 8
MinGWだけど -Wl,--stack でどうしてもスタックサイズが変わらないので悩んでいた
dumpbinとeditbinを使うと変わるし確かめられるんだけど、ようやく方法がわかった
リンカの-Xlinker optionで --stack=<バイトサイズ> と指定すれば変わった
どうも-Wlにバグがあるみたいだな
それとも-Wl,--stack=<バイトサイズ>としないといけないのだろうか
まあリンカの方をいじるのが確実だな 今試してみた
-Wl,--stack=<バイトサイズ> でも駄目でした
結局-Xlinker --stack=<バイトサイズ>で行きます OBJ吐いて結合のときと
OBJ吐かずにコンパイル即EXEのときで違うとか Eclipse CDT使うと通常ではOBJ吐いてから結合だよ
OBJが一つしかなくても >>399
過大な期待を抱かなければ今も昔も便利なものだぞw Git For Windows の一部として生き残るでしょ。MinGW >>405
なんでないの?
Git For WindowsのGit Bash便利だよ。 gitの付属物としてのmsys2だとpackmanとか入ってないから面倒 普通、pacmanでMSYS2にGitいんすこするでしょ
Git For Windows の存在意義って何?w >>410
Windowsがパッケージを管理していることがメリットかな…。 windowsのあれはパッケージ管理なのか?アップデートはアプリ任せだが >>413
Git for WindowsもMSYS2もChocolatey経由でinstall&upgradeしている。
Windowsの「アプリと機能」ってパッケージ管理じゃないの? msys2のupgradeは
pacman -Ysu
じゃなくて? >>410
MSYS2で擬似Linux環境が欲しいとかMinGWで
開発をしたいわけではないけど、最新の
VisualStudioとかAndroidStudioがGitを要求
するんでWindowsでGitだけ使いたいとかっていう
要求はある
Git使いたいわけではなくて、ソースコードに
GitHUBなどから動的にソースを取ってくる
見たいなものも増えているので GPLにしたくないのでclang+libc++をベースとしたw32api開発環境を構築してみようと思ったけど全然情報ないのな >>417
このスレで言うのもあれだけど、わりとそのまま置き換えて使えるよ
msvc系で使うならターゲットも気にしなくていいし
でもそれならMSからvcのビルドツール落としてそっちのコマンドラインの方を
使った方がいいような気もする >>418
事態が結構複雑で・・・
言語はRust
使いたいライブラリはOpenCV(cmake)、GraphicsMagick(make/VisualMagick)、PDFium(Ninja)
ビルドツールだと最新のsln/vcxprojしかビルドできない(VisualMagickはVC++7のslnしか作れない)
コミュニティを入れればビルドできるだろうがめっちゃでかい
最近はWindowsでも脱msvcの流れっぽいしRustも例外ではない(リンカをlldにしようという話があるらしい)
最終的にはLinuxや*BSDでも使う可能性を考えるとmsvc依存は好ましくない
じゃあMinGWで・・・でもライブラリ類がGPLなのは困る。今更gccというのも
ならLLVM系は・・・clangはビルド済みを落とせるけどlibc++はどうすれば??? ←イマココ
以降愚痴。Chromeのコンパイラがmsvcからclangになんて記事が出回っているくらいだし
PDFiumもclangでビルドできるはずだがmsvc(コミュニティ)を使う記事しか見つからん
俺様ビルドシステムの上に情報不足とかマジやめて欲しい 別にMinGWでコンパイルしてもGPLになる訳じゃないしな デバッグにgccを使うだけじゃGPLにはならんな
リリースをvcでやるとか GPL系ライセンスの嫌いなところは業界内で通用する統一された解釈がなくトラブルに発展する可能性が高いこと
類似の事象でも人によって正反対の主張をしているとかザラだし おまえらGCCランタイムライブラリ例外を知らんの? >>428
プロプライエタリなプログラムと混ぜてはいけないと読めるが自分の解釈は間違っているかな? GCCランタイムライブラリ例外、GCCランタイムライブラリ例外言っていた人はどこかへ行っちゃったんか?
OS例外というのもあるよね「何を持ってOSか、どこまでがOSか」に対する統一された見解はなくて
人や会社によって差があった気がするけど >>429
GCCのプラグインとしてproprietaryなプログラムを組み合わせると例外の恩恵を受けられない
「GPLと両立しないプラグインなど」を組み込ま「ない」GCCが、proprietaryなソースコードをビルド(*.oの出力、リンク)しても例外は適用される(出力されるものはGPL扱いにならない)
ように読んだ
たぶん「コンパイラの中間表現」はGIMPLEとかRTLみたいなGCC固有の表現を指してて、アセンブリ言語(-Sオプションで出力されるやつ)やオブジェクトコードは指してなさそう スカトロMinGWの方が先に8.2.0出しやがった 待った
このビルドおかしいぞ
g++ -v で --with-arch が i686 じゃなく i586 になってて
#include <thread> は通るのに std::thread がエラーになったり
#include <mutex> は通るのに std::mutex がエラーになるぞ
「このビルド」は、ここ↓で拾ったやつ
https://ja.osdn.net/projects/mingw/releases/p15522 >>434
mingw-getのサプライチェーンを疑ってみれ。 最近 Cygwin も今使ってるやつ居るのか不安になる事が・・
もしかして日本で10人ぐらいの Cygwin ユーザーの一人が俺だったりするんじゃないのか?とか >>437
俺も日本人ユーザーの一人だが、最近はあまり使っていない。
頻繁にパッケージは更新されているから、世界的にユーザーはいるんだろうと思う。 WINDOWSをアンインストールしてUNIXクローンを入れるのが一番幸せになれるよ リーナス君もタネンバウム先生も
作ったのは完全オリジナルOSだろ MSYS2 のスレって無いみたいだけど、
このスレで話題にしてもいいかな? >>439
デスクトップ2台使っている。
旧機はUbuntu。新機はWindows 10 Pro。
Windows上でUNIXライクなコマンドを使いたいことが多々ある。 みなWSL(Windows Subsystem for Linux)に行ってしまったのさ・・・ >>448
Git BashかWSLかあきらめてPowerShellを極める minttyのためだけにcygwin入れてた時期があったけど
それもももうcygwin気にせず使えるようになったし
cygwinはお役御免 cygwin + msys -> msys2だと思ってた pcre2のpcre2_match_*() がクラッシュするんだけど、cygwinでしか起きないので調査する意欲がわいてこない。 >>449
win7 な私に wsl の恩恵はないのでしょうか? Git for Windows v2.21.0 Release Notes
Latest update: February 26th 2019
https://gitforwindows.org/ random_deviceがクソすぎ
D:\learn\random>type test1.cpp
#include <random>
#include <iostream>
using namespace std;
int main()
{
random_device d;
cout << d() << endl;
cout << d() << endl;
cout << d() << endl;
}
D:\learn\random>g++ test1.cpp
D:\learn\random>a
3499211612
581869302
3890346734
D:\learn\random>a
3499211612
581869302
3890346734 >>457
MinGWはmt19937を使うと書いてあるぞ。 それじゃ意味ねえだろって話
mt19937のseedを作るのにmt19937を使ったらアホだろうが >>461
でも規格上実装依存ってことになっていて、実装が疑似乱数だと明示しているのだから、避けるのは利用者側の義務になるのでは。 seedはプロセスid と スレッドid の組み合わせのほうがよくない? どうせmt使うんだからseedさえ適当に変更掛かるものなら何でもいいっしょ >>457
std::random_device::entropy()を表示させてみ
これで 0.0 が帰る場合は毎回同じ値が帰るから
VCはプロセスIDをうまく使ってrandom_deviceを実現してるようだな
MinGWは駄目だよ え、VCってCryptGenRandomを使ってないの? rand_s()、rtl_gen_random() とかいうAPIでしょ。 Cでgets_sコンパイルするとエラーになるんだけど
通す方法ってないすか >>472
gets_s は C11 から導入されたので C11 を有効にするオプション (-std=c11) を付ければいいんじゃね? >>473
わたしはぜひそれをしたいと思っていますがBasic Setupのツリーからその項目を見つけることができません
どこにあるのでしょう>< >>473
あ、もしかしてそれってターミナルでコンパイルするときに
gcc -std=11 hoge.cとやれということでしょか?だとしたら死にたい… MSYS2 環境 (32bit) で Guile を実行するとライブラリのプリコンパイルが
始まってなかなか終わらないし、終わってから再度実行するとまた最初
から始まってしまう。
パス変換の考慮ミスで既にあるプリコンパイル済みライブラリを見つけらない (?) っぽい
報告もあるんだけど、これってどうにもならない? ダミーで ./c/hoge -> /c/hoge みたいなリンク作って path に追加したら? Windows 8.1 64bit 上で
>set | findstr PATH > c:\tmp\PATH.txt
>set | findstr Path > c:\tmp\Path.txt
したらファイル1つしか残らなかっただ…。
LFN でも大文字小文字区別せんのか…
Windows10 だと違うのか chcp 65001 はバグだらけだから今はしないのが常識 >>479
grep -ir "abc" ./*
grep でも使えば?
i は、大文字小文字を区別しない。
r は、ディレクトリを再帰的にたどる cp932でgcc-8.2.0がコンソールを深紅に染めない環境はありますか findstr /I
で case insensitive 処理が出来るようですね いずれも環境はWindows8.1 64bitです mingw-w64-x86_64- が頭についてるGUIソフトってXなしで動くのですか?
また、これが頭についていないパッケージってなんのために存在するのですか? 名前はなんでもいいが、mingwをつかって直接windows api呼んでりゃXなしでうごく。あとQtとか使ってるのもあるじゃろう。
公式のパッケージは全部同じ命名なんじゃないか?なんか管理用のファイルとか? qt-5.12.2ならMinGWのgcc-7.3.0を入れられる
g++ & qtで書ける <私見>
qt charts ブチ込んでも、qt-5.12.2なら問題はリバースエンジニアリング関連にとどまる
なぜなら、qt chartsをインストール対象としてチェックしたうえでインストーラを進めても、
ライセンスとしてLGPLが選択可能で、GPLv3が要求する "displays an appropriate copyright notice" を満たさずGPLv3の適用を主張できないから
</私見>
正確なところは弁理士または弁護士に確認されたし
IPAの逐条訳が参考になるかも