Cygwin + MinGW + GCC 相談室 Part 8at TECH
Cygwin + MinGW + GCC 相談室 Part 8 - 暇つぶし2ch951:デフォルトの名無しさん
23/12/24 13:46:07.33 zZdFC2zj.net
質問です。
・ OS は windows10 で、最近 MinGW-w64 を導入した。
・ 下記の test.cpp ファイルに対して g++ -m64 -o test5 test.cpp と実行。
test.cpp
#include <stdio.h>
#include <stdint.h>
int main(){ printf("%d %x %zu", sizeof(long), sizeof(long), sizeof(long)); getchar(); return 0; }
・ 出力された test5.exe を実行してみると、なぜか「4 4 4」と表示されてしまい、
 「8」が1個もない。64ビット環境では、sizeof(long) は「8」なのでは?
・ test5.exe を右クリックして互換モードの欄を見てみると、
  Vista 以降のものしか表示されないので、
  ちゃんと64ビット版の実行ファイルになっている
  (他にも色々な確認方法があるが、いずれも64ビット版に合致する)。
・ それなのに「8」と表示されないのはなぜ?

952:はちみつ餃子
23/12/24 15:28:23.49 SfA3xmSz.net
>>951
> 64ビット環境では、sizeof(long) は「8」なのでは?
単にその認識が誤り。
64ビット版の Windows の ABI では long は 4 バイトと規定してる。
URLリンク(learn.microsoft.com)
コンパイラが OS の規定に逆らって独自の仕様にしたってかまわないんだけど、
やりとりがややこしくなっちゃうだけで得なことはないからね。

953:デフォルトの名無しさん
23/12/24 19:23:18.89 zZdFC2zj.net
じゃあこの挙動で問題ないんですね。ありがとうございました。

954:デフォルトの名無しさん
24/05/29 06:44:42.24 85k4cg9J.net
mingw64でglibとgstreamerに動的リンクしたバイナリ作ったんだけど、glibは関数呼べるけどgstreamerは関数呼べない
なぜかgstreamerの関数を書くとプログラムの起動がコケて関数をコメントアウトするとちゃんと起動する
リンクがおかしいのかもと調べてみたけどちゃんと動的ライブラリはリンクしてるっぽい
あと考えられるのは動的ライブラリの破損ぐらいなんだけど、お前ら何か考えつくことある?

955:947
24/05/29 07:56:37.14 85k4cg9J.net
gstreamerのバージョン下げたら解決した

956:デフォルトの名無しさん
24/06/15 21:47:14.13 Ate4RGLQ.net
VC6時代のソースをビルドしてlddで見ると以下のようになった
ntdll.dll
KERNEL32.DLL
KERNELBASE.dll
msvcrt.dll
VC22は以下
ntdll.dll
KERNEL32.DLL
KERNELBASE.dll
ucrtbase.dll
VCRUNTIME140.dll
上のmsvcrt.dllの代わりに下のucrtbase.dllとVCRUNTIME140.dllでビルドできないか
ファイルサイズがstripしてもVC22の10倍になってしまいmsvcrt.dllを疑っている
バージョンは
gcc version 11.2.0 (Rev6, Built by MSYS2 project)

957:デフォルトの名無しさん
25/01/05 11:05:05.31 0SlvKtyY.net
hosyu

958:デフォルトの名無しさん
25/03/09 23:22:05.65 sClrYMAa.net
もう8時間もビルドしてるんだが?
いつ終わるんだ

959:デフォルトの名無しさん
25/03/10 00:26:15.12 L5uR+Msw.net
何を?

960:デフォルトの名無しさん
25/03/10 10:28:51.60 L5uR+Msw.net
終わったかな?

961:デフォルトの名無しさん
25/03/10 15:40:18.94 3GRyZaix.net
コンパイルだけで14時間かかった
インストールでエラーが出て終了

962:デフォルトの名無しさん
25/03/10 23:09:09.64 L5uR+Msw.net
何を?

963:はちみつ餃子
25/03/11 09:58:54.15 GvJGmymX.net
スレの主旨からすると GCC のコンパイルかな?
ただでさえ時間がかかるのにステージ3までやったら単純に三倍ってことだからなー

964:デフォルトの名無しさん
25/03/12 15:30:34.03 aNDBBqWo.net
cygwin使うって事はwindowsの人なんだろうけど
gccをバイナリじゃなくてソースから入れたがる理由はなんだろ

965:はちみつ餃子
25/03/12 15:43:42.31 cxKhqENs.net
クロスコンパイル環境を構築するときはバイナリが見当たらないということもある。

966:デフォルトの名無しさん
25/03/13 04:45:54.85 eyMSpLdK.net
解決しました
cgwinじゃなくてlinux環境のgccです
GCCについてのスレがDAT落ちしてたので藁をもすがる思いでこちらに書きました
gitから落とした某ソースをやってたんですがエラーログ見たら環境変数が不正だったので該当の.cに追記したら無事インストール出来ました
助かりました
遅いのはマシンスペックが大概なのもあると思います

967:デフォルトの名無しさん
25/03/13 11:20:49.35 NvBr8oPw.net
> 藁をもすがる思いでこちらに書きました
これまでの経緯見て通じてると思ってるところがZ
チラ裏にでも書いて死んどけ

968:デフォルトの名無しさん
25/03/19 11:43:06.67 Irgid5LD.net
初心者に厳しいっていうのはこんなところだな

969:デフォルトの名無しさん
25/03/19 12:50:01.68 0pCxXH7R.net
× 初心者
○ 低知能馬鹿コミュ障クズ

他人が読んで分かるように書く気がないのなら、チラ裏か日記に書いとけ
相手のせいにするのはゆとりZクズの常套手段だが、そもそも何を知りたいのか分からんのでは答えようがない
コミュ障馬鹿の為に一応定義しておくと、例えば、初心者に厳しい=低レベルの質問をした場合に無視or馬鹿にされる、だ
エスパーしてでも回答しようとしてる奴も居るし、誰も該当しない

970:デフォルトの名無しさん
25/03/22 11:49:02.54 b/nN/9NR.net
>>945
こうなるの分かってたでしょ
なんで10や11にしなかったの?

971:デフォルトの名無しさん
25/03/22 14:19:58.73 U6/Lg1xx.net
判ってて使う分には問題無い

972:デフォルトの名無しさん
25/03/22 21:56:27.10 cRNo9rU1.net
使っててとくに問題なさそうにみえて実は非常にコアな部分でトンでもない不具合が生じていて
一見ふつうに動いているだけという可能性はある
さりとて、じゃあMSYS2がサポートしてる環境下で「絶対に確実にすべてが問題なく動いている」という保証も
じつのところないので、結局そういうことを気にしたら負け

973:デフォルトの名無しさん
25/06/26 17:52:15.96 nmyewptE.net
wsl2でlinux版のmingw使ってるけどすごくいいね
gcc on linuxとgcc on mingw on linuxでlinux/winのバイナリを両方吐ける
これからのクロス開発のスタンダードになるんじゃ?

974:デフォルトの名無しさん
25/06/26 18:43:04.44 JONMqo8w.net
大昔からクロス用に使われていたgccをさも今自分が発見しましたみたいに言われても…
ちなclangの方がひとつのコンパイラで複数ターゲットに対応できるからもっと簡単

975:デフォルトの名無しさん
25/06/27 09:28:46.15 H+pgJuGy.net
>>973
とっくになってるでしょ

976:デフォルトの名無しさん
25/06/27 09:29:24.03 H+pgJuGy.net
>大昔からクロス用に使われていたgccをさも今自分が発見しましたみたいに

ほんそれ
開いた口が塞がらんわ

977:デフォルトの名無しさん
25/07/06 09:46:03.14 jyZjYPic.net
(たぶん)初心者が使ってて自分があっと気付いたから書いただけで、さも自分が発見しました!なんて言ってないだろ…

そもそも毎スレ掘り返される話題だし、それで初心者を萎縮させるのはどうかと
>>898くらいまで発展的用法バリバリ使ってたら、お前ら叩かんやろ?

978:デフォルトの名無しさん
25/07/06 10:20:31.05 RFZXbMVg.net
いってるね

979:デフォルトの名無しさん
25/07/10 02:15:09.38 K1GlzFeW.net
これは言ってるようにしか読めないわ

980:デフォルトの名無しさん
25/07/15 23:36:59.18 hInNkoM6.net
ここの回答者クズばっかだな
そら初心者こないわ

981:デフォルトの名無しさん
25/07/15 23:48:52.15 bTX3ONQP.net
スレタイの初心者とは言え内容的にはプログラミング熟達者の方が多いから自力解決する事が多いのでは

982:デフォルトの名無しさん
25/07/15 23:55:01.09 Xa+JcFPE.net
煽りとかそういうのでなく、純粋に意見として
今は初心者レベルの人はAIに聞いたほうがはるかに有用な答が得られる

983:デフォルトの名無しさん
25/07/16 00:05:19.73 54zFMq80.net
次スレ立てるときにはcygwinは控えめで

MSYS2ルート(mingw64-gcc/clang/bash/各種ライブラリ等windowsネイティブポート)
VSCodeルート(msys2導入せずmingw64コンパイラだけ導入)
WSL2ルート
のそれぞれで誰か説明したらwindowsプログラミング初心者(VSは使いたくない人)の助けになるかも

>>982
AIでまとめて貰っても良いかも

984:デフォルトの名無しさん
25/07/16 03:12:54.62 07jtrGs0.net
TDM-GCC64ってなんなん

985:デフォルトの名無しさん
25/07/16 16:55:53.12 8VyoLyXs.net
>>983
gccの話なら開発環境は全部Linuxで済ませてWindowsはあくまでターゲットのひとつに留めといたほうが簡単で楽なんだけどね
まあこのスレはcygwin/mingwのスレだからそれはスレチか

986:デフォルトの名無しさん
25/07/16 18:56:50.02 uj9eYc0f.net
>>980
Visual Studioが至れり尽くせりなんだけど、それだけだとロックインするからスレタイの環境に興味がある人がいると思う
ただしこのスレではMSYS2以外で導入していろんな墓穴を掘っている傾向がある
とりあえずMSYS2導入(とその後のメンテ)をQiita/Zennで調べたら、初PCゲットしたてのスマホキッズでも躓く事は少ないのでは

マルチプラットフォームアプリ開発等の必要性が出てきたらWSLにすれば良いかと

987:デフォルトの名無しさん
25/07/16 19:02:18.06 uj9eYc0f.net
>>984
それは更新されてないから無視して良いかと

>>986にちょと書いたけど、初期導入以外にも本家gccへの追従更新やサードライブラリ追加導入の事も大切
そこがMSYS2が手頃なので

988:デフォルトの名無しさん
25/07/16 19:04:00.62 uj9eYc0f.net
もちろん「プログラミング熟達者」は好きにしたら良いと思う

989:デフォルトの名無しさん
25/08/22 17:08:27.47 3pyH/4Fj.net
Windows用Gitに、msys2由来のコマンド類が結構入ってるけど、
こっちはどれくらい使えるものなのだろう

コンパイラは無い、というのはいいとして、
grep、sed、awkとから辺は入っているから
とりあえずシェルスクリプトでちょっと何かをしたい、と
思った時とかは、Gitについてるコマンド類でも充分なのかな

正直、Windows用GitとCygwin+MinGWを導入していると、
gnu-utilsあたりのコマンドが両方入っているような感じで、
どっちかもう消したいんよね

gitはWindows用Gitの方が都合がよいのでこちらを残すかと
思ってるのだが、なー

990:デフォルトの名無しさん
25/08/23 21:23:36.16 ophcDa1q.net
>>989
Git for Winのmingw環境は、あくまでもgitのためのものだからな

bash、grepはじめ、UNIX的コマンドをより完全に使いたいのなら、
やはりCwgwin+MinGW+GCCかなと

ただ、Gitをメインに据えたいというのなら、
逆にGitのMinGWにgccとかを入れていくのがよいかなと
コマンドが足りなければその時にまた追加していく、で
それでgit環境がおかしくなったら、涙を拭いて頑張る、になるが

991:デフォルトの名無しさん
25/08/24 10:11:40.65 FHs64gUC.net
全部入りがいいならMSYS2でいい

992:デフォルトの名無しさん
25/08/24 21:06:59.10 JGmFRBjN.net
msys2で全部入り(随時追加)が良いよ
各ランタイムの開発環境(ucrt64,mingw64,clang64)の合計なんて30GBにも満たない
昨今の(mono)プロジェクト単位の依存関係インストールに比べたら軽いものでは

993:デフォルトの名無しさん
25/08/27 03:14:16.66 nJC8HQwX.net
windowsのパス環境変数取り合いになるからなあ
こういうの
統合してほしい

994:デフォルトの名無しさん
25/08/27 05:44:42.72 F9vl64W8.net
そう言う疑問はmsys2インストールして環境別のショートカットを見たら直ぐに分かる

995:デフォルトの名無しさん
25/10/12 05:50:47.01 W2SaGlg4.net
>>992
でけーよ…


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch