Cygwin + MinGW + GCC 相談室 Part 8 (988レス)
上下前次1-新
931: 2022/10/24(月)16:47 ID:VKX4Fsrh(1) AAS
 gcc 自体にはバージョンを混在させる仕組みはある。 
 クロスコンパイル用の環境を構築したいとかよくあることだし。 
 MSYS2 でもできなくはないけど、 
 今だと Docker を使うとかしたほうが簡単なのかなぁ……。 
932(1): 2023/03/14(火)10:13 ID:nRxoL4vn(1) AAS
 MSYS2 MinGW64 の環境でSDL2を使ってゲームを作っています。 
 作ったゲームは将来的には配布する予定です。 
 それでDLLを動的リンクにするためにパッケージに含めたいと思っています。 
  
 今のところ起動に必要なDLLが 
 libgcc_s_seh-1.dll 
 libstdc++-6.dll 
 libwinpthread-1.dll 
 他、SDL2のdll 
 です。 
  
 C++とpthreadのdllは何となくわかるのですがlibgcc_s_seh-1というのは何でしょうか? 
 MinGW固有のgccのdllですか? 
933: 2023/03/14(火)14:53 ID:E+DEqG9x(1) AAS
 structured error hunt 
934: 2023/03/16(木)00:09 ID:srO8KDRm(1) AAS
 >>932 
 $ pexports libgcc_s_seh-1.dll 
935: 2023/03/24(金)14:33 ID:A6TekdSG(1) AAS
 sizeof(long double) == 16になったのは、いつから? 
936: 2023/03/28(火)17:22 ID:hvNFNzxE(1) AAS
 tdm-gcc良いんだがな 
937: 2023/03/30(木)10:23 ID:B7uoZJXZ(1) AAS
 >>930 
 Mingw-builds じゃダメなのか? 
 俺も最初は TDM-GCC 使ってたけど、何時までも更新されないから Mingw-builds の 12.2.0 に乗り換えた 
 俺が使っている wxWidgets 3.2.2.1 も普通にビルドできたし、若干コンパイル速度も上がった気がする 
 (気のせいレベルかもしれませんが・・・) 
938(2): 2023/07/10(月)11:59 ID:YLTFTLfF(1) AAS
 Windows7 64bitにMSYS2インストールしたら 
  
         The MSYS2 project no longer supports Windows 7 and 8.0. 
         For more information visit https://www.msys2.org/docs/windows_support 
  
         って黄色い字で表示されるようになった 
  
         とりあえずコンパイルとかはできてる 
939: 2023/07/11(火)09:23 ID:IUx5aYIs(1) AAS
 >>938 
 左様でございますか 
940: 2023/09/12(火)12:30 ID:QOX8wfhQ(1) AAS
 それよりゲロ重いのが 
941: 2023/09/28(木)08:25 ID:C8Dm3tge(1) AAS
 切磋琢磨 
942: 2023/09/28(木)10:21 ID:7+/lnWbq(1) AAS
 そういやswingを低速言うてるけど 
 JavaFXのほうが初期化しめちゃめちゃ時間かかってもっさりしてるんだけど… 
 そしてmacでは未だにスレッド競合解決してない 
 swnigよりオワコンな気がする 
943: 2023/10/10(火)09:18 ID:vCJOXgr3(1) AAS
 スレチ 
944(1): 2023/12/24(日)13:46 ID:zZdFC2zj(1/2) AAS
 質問です。 
  
 ・ 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」と表示されないのはなぜ? 
945: はちみつ餃子 ◆8X2XSCHEME  2023/12/24(日)15:28 ID:SfA3xmSz(1) AAS
 >>944 
 > 64ビット環境では、sizeof(long) は「8」なのでは? 
  
 単にその認識が誤り。 
 64ビット版の Windows の ABI では long は 4 バイトと規定してる。 
 https://learn.microsoft.com/ja-jp/cpp/build/x64-software-conventions?view=msvc-170#scalar-types 
  
 コンパイラが OS の規定に逆らって独自の仕様にしたってかまわないんだけど、 
 やりとりがややこしくなっちゃうだけで得なことはないからね。 
946: 2023/12/24(日)19:23 ID:zZdFC2zj(2/2) AAS
 じゃあこの挙動で問題ないんですね。ありがとうございました。 
947(1): 2024/05/29(水)06:44 ID:85k4cg9J(1/2) AAS
 mingw64でglibとgstreamerに動的リンクしたバイナリ作ったんだけど、glibは関数呼べるけどgstreamerは関数呼べない 
 なぜかgstreamerの関数を書くとプログラムの起動がコケて関数をコメントアウトするとちゃんと起動する 
 リンクがおかしいのかもと調べてみたけどちゃんと動的ライブラリはリンクしてるっぽい 
 あと考えられるのは動的ライブラリの破損ぐらいなんだけど、お前ら何か考えつくことある? 
948: 947 2024/05/29(水)07:56 ID:85k4cg9J(2/2) AAS
 gstreamerのバージョン下げたら解決した 
949: 2024/06/15(土)21:47 ID:Ate4RGLQ(1) AAS
 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) 
950: 01/05(日)11:05 ID:0SlvKtyY(1) AAS
 hosyu 
上下前次1-新書関写板覧索設栞歴
あと 38 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.019s