Cygwin + MinGW + GCC 相談室 Part 7
3 :
デフォルトの名無しさん:2013/01/06(日) 15:21:18.41
4 :
3:2013/01/06(日) 18:38:38.75
安物NASのSMBと100BASE-TXだと、gccのtarballの展開
(NAS上で、bunzip2|tar xf -)
すら時間が掛かり過ぎる。
常用するのは厳しいかも。
mingw の gcc で test.dll とインポートライブラリ libtest.a を次のように作った
g++ --shared -o test.dll test.cpp
pexports test.dll > test.def
dlltool --dllname test.dll --input-def test.def --output-lib libtest.a
それを実際にリンクさせようとしたところ、
g++ -Lライブラリのパス -ltest main.cpp
とやったら、リンクエラー undefined reference to・・・ が発生した。
libtest.a をカレントディレクトリにコピーしてきて
g++ main.cpp libtest.a
とやったら、ビルドできた。
ネット上で mingw の dll の使い方を調べてみると
前者の方法で良いみたいだけど、なぜかできない。
なんで?
main.cpp と -ltest の順番を変えろ。
超 FAQ
7 :
片山博文MZボット ◆0lBZNi.Q7evd :2013/01/07(月) 16:22:47.38
いろんな種類のgccが出て来てるね。解説キボンヌ。
イボンヌです
12 :
デフォルトの名無しさん:2013/01/08(火) 21:50:11.56
うん
msys*.dllをリンクしたmakeはMSYSのパス(/usr/local)をネイティブパス(C:\mingw\msys\local)に変換してくれたりするのでは
GNUのサイトからmakeのソースを落としてそのままビルドしようとするとconfigureで
>case "$has_wait_nohang" in
> no) echo
> echo "WARNING: Your system has neither waitpid() nor wait3()."
> echo " Without one of these, signal handling is unreliable."
> echo " You should be aware that running GNU make with -j"
> echo " could result in erratic behavior."
> echo ;;
>esac
と言われる。
waitpid()はmsys-1.0.dllの中にあるので、MinGWのサイトにあるmsysを使うようにパッチされたソース
(make-3.81-3-msys-1.0.13-src.tar.lzma)を使ってビルドされたmakeならば-jオプションがちゃんと動くと思う
15 :
11:2013/01/09(水) 07:07:04.43
今まで make って、Makefile に書かれたコマンドを単に実行するだけで、
そのコマンドが使うデフォルトのパスとかには一切関わらないと思ってたが、
話を聞いてるとどうも違うみたいだ
rubenvbって何?
>>14 msysサポート如何にかかわらず make -j はよく刺さる。 ちゃんと動くバージョン希望。
むしろ今後のプロジェクトでは cmake+ninja にしろ。ちゃんと、しかも高速に並列動作する。
>>16 理解できていないものをことごとく馬具呼ばわりする蘭厨。
19 :
デフォルトの名無しさん:2013/01/11(金) 06:40:12.49
>>7-8>>10 そういや32bit版はC++の例外絡みでdw2とsjljに分かれてますね。
20 :
デフォルトの名無しさん:2013/01/15(火) 05:11:50.77
分かれてるね
21 :
デフォルトの名無しさん:2013/01/16(水) 10:30:52.79
うん
前スレのcommon lispのconfigureがmsysでコケちゃったの別解
msysやめて、cygwinでやってみた
$ CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ ./configure --enable-ansi --build=i686-w64-mingw32
(事前にcygwinにmingwなgmpいれとかないといけない。)
これで、configureは成功する。
しかし、makeでまだ、コケる。
c++.exe と g++.exe ってなんか違うん?
>>23 c++.exe と g++.exe のファイルのハッシュ値が一致するから同じものやね。
Linaxなんかだと、どちらかは片方のシンボリックリンクとかになってるんじゃないだろうか。
Linaxっておいw
そうなのか。
何のためにあるんだろ、歴史的な経緯とか、互換性のためかな。
今はどちらでも気にしないで使って良いんだね。
ありがと。
互換性だろうな
ccコマンドと同じ事だろう
みんなgcc捨ててclang使ってないの?
clangはエラーメッセージがgccよりわかりやすくてよい
clangはもっと簡単に使えるようにしてよ
gccみたいに解凍して環境変数設定したら即使えるようにならない限り選択肢にならん
Cygwin の clang はインスコ一発で使えないか?
春先に出るであろうgcc-4.8はclangみたいなエラー表示してくれるよ
cygwinの設定で環境変数を変数名HOME、値/home/usernameと設定したのですが、
HOMEという変数名はcygwinを使うためだけに設定しても大丈夫なのですか?
他のソフトでも環境変数のHOMEを設定するときに不都合があったりするのでしょうか。
大学の授業の延長で自宅のPCでも使えるようにしたので、環境変数とかについては無知です。
よろしくお願いします。
homeディレクトリをC:\cygwin\home\usernameにしておきたいのですが...
34 :
デフォルトの名無しさん:2013/02/03(日) 15:42:03.57
たとえばバッチならバッチの冒頭でセットするとか
35 :
デフォルトの名無しさん:2013/02/03(日) 15:50:03.47
ふーん
>>33 bash側でHOMEを設定するなら、Windowsアプリには影響しないよ。
>>36 ありがとうございます。
bashについては自分で調べておきます。
>>25 俺の環境ではLinaxはLinuxへのシンボリックリンクだから大丈夫
ちょっと気をつける点があるが HOME を /cygdrive/c/Users/yourname にすると便利なことが多い。
mount?
/etc/fstab
パーミッションが0になってWindowsから書き込みできなくなりった
>>1 新年明けましておめでとう。良い年であるといいね
43 :
デフォルトの名無しさん:2013/02/09(土) 16:26:16.21
gcc で32/64bit syntax-only コンパイルを行いたいがスイッチによって定義済みマクロが切り替わらないです。
これって全部自分で再定義しないとだめなの? __SIZE_TYPE__ とか __PTRDIFF_TYPE__ とかその他もろもろ。
ILP32/LP64/LLP64とかを切り替えて syntax-only がしたいんだけどどうすれば?
44 :
デフォルトの名無しさん:2013/02/09(土) 16:31:18.05
1. 上記に追加、というかこれが本題で clang で syntax-only をしたいのだが、 -m32/m64 に相当するスイッチも見当たらないしどうやって32/64bitの切り替えを行えばいい?
ちなみに 64bit 想定で size_t が uint64_t 相当になると <new> をインクルードしただけで operator new がエラーになる。
第一引数の size_t は uint32_t 想定である的なエラーになるんだが・・・。
これを解決して size_t が uint64_t でも syntax-check をパスできるようにしたいです。
45 :
デフォルトの名無しさん:2013/02/09(土) 16:33:20.06
2. clang で Windows.hを syntax-only したときにデバッグビルドだと __STR2WSTRマクロで勝手にリテラル記号をつけられてしまうのだがclang がこれに対応していないのかリテラルとして処理できずにエラーになるんだが、どうする方法ない?
とりあえず現状 -U_DEBUG で非デバッグ版として回避してるけど、_DEBUG ありでちゃんと通るようにしたい
3. clang のオプションについての質問
-fms-version -fms-extensions を設定しているのに _MSC_VER や _MSC_EXTENSIONS が定義されない
これってどうなの?まだ未対応?
46 :
デフォルトの名無しさん:2013/02/09(土) 16:39:51.95
-no include 系オプションがおかしい?
clang -fsyntax-only -x c++ -v /dev/null
とかで表示されるインクルード対象だが、オプション一覧にでてるのは
-nobuiltininc Disable builtin #include directories
-nostdinc++ Disable standard #include directories for the C++ standard library
-nostdsysteminc Disable standard system #include directories
デフォルトでインクルードされる対処を全て除外したいので
clang -fsyntax-only -x c++ -v -nostdinc /dev/null
とかにすると望みの結果になるのだが
47 :
デフォルトの名無しさん:2013/02/09(土) 16:42:47.39
clang -cc1 -fsyntax-only -x c++ -v -nostdinc /dev/null
とするとダメ。
正確には -v つけてるうちはよいが外して、ビルドすると cc1 は -nostdinc ねぇよ、っていわれます。
-v -nostdinc で出力されたオプション列を真似して
-cc1 に渡す nobuiltininc/nostdinc++/nostdsysteminc を指定してもinclude対象ディレクトリを全ては除外できずnostdinc相当になりません。
これってどうすればいいんでしょうかね?
ttps://sites.google.com/site/x32abi/ ILP32(x32abi)はウニックス系だけじゃね、つかえるのは
とういうか、windowsでx32apiのバイナリ動く(ある)のけ
mingw64は
i686-w64-mingw32
x86_64-w64-mingw64
で64bit/32bit環境を混在させないようにしてる
clangはこれからでしょ、まだ枯れてないような
mingw初心者で解らんから聞くけど
i686-w64-mingw32 (i686, w64, mingw32)
x86_64-w64-mingw64 (x86_64, w64, mingw64)
の各部は何を意味するですか
ggrks
バツ x86_64-w64-mingw64
マル x86_64-w64-mingw32
i686-pc-cygwin
i686-pc-mingw32
gccのconfig.hostとか覗いてみたら、なんとなくわかるよ
gnu-grks
cygwinの中でしか使い物に成らないんだからPEじゃなくランチャーかましてELFで提供してくれればよかったのに
g++-4.7 になってから C++ ABI が変わったが clang がまるで対応してない感じ。 (ひとごと)
boostをビルドしたが、VCのmlが必要なんだな
boostのビルド時間の長さは異常
distro mingw 9.6
boostが1.53.0になって付属ユーティリティがマイナーバージョンアップしてる以外は
大して変わってない模様
59 :
いそろく:2013/02/11(月) 04:35:19.01
>>58 それboost context libがないからcoroutineが使えない
ということで俺boostビルド
いきなりで申し訳ありません。
連投になりますが失礼します。
現在Windows7-64bitOSにCygwinを入れております。
今回tcl/tk-8.4.19ライブラリを入れたいと考え、
Tcl Developper XchangeからGzipファイルをダウンロードしてmakeを行いました。
>>60の続き
tclのほうはうまくいったのですが、tkのほうで./configureをしたところ
$ ./configure
・
・
・
checking for dlopen in -ldl... (cached) yes
checking for ar... (cached) ar
Can't figure out how to do dynamic loading or shared libraries
on this system.
checking for build with symbols... no
・
・
となりうまくいかず、makeにも失敗しました。
どなたか解決策を知りませんでしょうか。よろしくお願いいたします。
config.logを
レス遅になって申し訳ありません
>>62さん
長くなるのでupしました
レベルが低くurlが張れないので情報だけで申し訳ありません
うpろだ@2chライブラリーの
ファイル名lib634095.txt
オリジナル名config.logconfig.log
です
よろしくお願いします
>>63さん
使いたいソフトをmakeするのに8.5以上のバージョンだとだめで
8.4.19を使わないといけなかったので・・・
> configure:5319:28: fatal error: X11/XIntrinsic.h: No such file or directory
./configure --without-x
69 :
68:2013/02/15(金) 14:21:32.44
64bitアプリっていっても
そんなにでかい静的配列は作れないみたいだよ
windowsの制約らしいけど
71 :
68:2013/02/15(金) 15:46:37.18
勘違いしてました。ありがとう
>>64です
長い間入れずに申し訳ありません
>>65さん それと同一人物です
./configure --with-tcl=../../tcl8.4.19/unix \
--x-includes=/usr/include/X11 --x-libraries=/usr/lib/X11 \
のようにしたところパスは一応通り、tkWinDefault.hが見つからないとエラーが出たので
winのフォルダから持ってきたところ一応makeはできました。
皆様のご協力ありがとうございます。
ただ、configureでの
Can't figure out how to do dynamic loading or shared libraries
on this system.
は解決できませんでした・・・
cygwin64キテルよ
>>72 共有ライブラリが作れないっていってんだったら、
--disable-shared
だかなんだか、共有ライブラリを作らない設定にしたらどうだよ。
ってか、メッセージちゃんと読んで./configure --helpでオプション調べるくらいしろよ。
cmdのstartのようなコマンドはcygwinにありますか?
たとえばcygwinコンソール起動中にvimコマンドで、コンソール内でText編集、保存、cygwinに戻ってコンパイル
というのは面倒なので、新しいウィンドウでアプリケーションを起動するコマンドを知りたいです。
>>75 /usr/bin/cygstart.exe
>>76 cygstart vim TestRun.java
でできました。ありがとうございます
windows7の64bit環境でmingwを使いc++のプログラムをコンパイルしようとしているのですが、
環境変数をC:\mingw\binに設定し、hello worldを表示させるだけのコードにコンパイルをかけてみると
g++:エラー:CreateProcess:No such file or directory
となってしまいます
ソースファイルのディレクトリも合っていますしlsで存在も確認できています
ここ数日ほどこれで足止め食らってます どうか解決策をご教授ください
79 :
デフォルトの名無しさん:2013/03/16(土) 14:50:17.26
1.環境変数なんてイラン
2.MinGW64\binをMinGW32\binよりPathの前方に移動させる
これでどや?
>>79 回答ありがとうございます
そのサイトにもたどり着いて試したんですが・・・
-vで内容を確認しても特に間違っている感じはないんです
>>80 同じく回答ありがとうございます
MinGWは64bit分しかいれてないのでMinGW32はないんです
g++ -vでコンパイルしたときの出力を貼れよ
ここじゃなくてpastebinとかでな
g++:エラー:CreateProcess:No such file or directory
ってなんかmingwじゃなくPC側の設定とかに問題ありって感じだな
とりあえず
where gcc
objdump -p C:\MinGW64\bin\gcc.exe | grep DLL
objdump -p C:\MinGW64\bin\gcc.exe | grep for
C:\MinGW64\bin\gcc.exe --version
をやってみようか(C:\MinGW64\binはMinGW64のインストールフォルダ)
http://www.07ch.net/up2/src/lena8814.png
>>82 こんな出力です
pastebin.com/d4q1BMGv
URLを直接張りたいんですがレベルが低いとかで書き込めないんです すいません
>>83 PC側の設定ですか・・・ cmdでコンパイラをさわるのは初めてでどうにも難しくて
>>84 やってみましたところ、こんな出力になりました
pastebin.com/7XPuyLCx
>>85 "cc1plus -quiet -v -iprefix C:\MinGW\libexec\gccx86_64-w64-mingw32/4.5.2/"
libexec\gccとx86_64が引っ付いてるのが原因か
とりあえずもっと新しいコンパイラで試してみて
お、俺の環境は古いのか……
ど、どこぞ?
>>89 自分で4.7.2をソースよりビルドする。かっこいい
>>90 configure: error: C preprocessor "/lib/cpp" fails sanity check
92 :
デフォルトの名無しさん:2013/03/17(日) 00:06:32.28
cygwinのsetup.exeで入れたらどうなる?
4.8.0のRCが出たらしいぞ
MSYSなんです
最新のVisualStudioでコンパイルしたのライブラリ(lib)とヘッダ(hpp)があります(ソースコードcppはありません)
これをMinGW+MSYS+GCCの環境で再利用することはできますか?
できますよ
>>95 >>96 C 言語のライブラリ(extern "C" { } の中)は使えるけど
C++ は VC と gcc でマングルが違うのでコンパイル済みだと使えなかったんじゃね?
DLLにコンパイルして動的ロードでおk
お教え下さい。
MinGW32のgccで-m64のオプションをつけるとsorry, unimplemented: 64-bit mode not compiled in
になるけどMinGW32でMinGW64の環境は作れないのでしょうか?
アーカイブがグチャグチャで構築し難いんだよね
gcc 4.8出たが自ビルドした奴もうおる?
ライブラリに関しての質問です。
MinGWでCurlを静的リンクでビルドしていたところ
opensslライブラリのlibcrypto.a(rand_win.o)でgdi32を参照する関数
が未解決とのエラーが出ました。
ググってみるとやはり同じような事例が沢山出てきました。
今のところ、該当関数をコメントアウトしてビルドするしか手段が無い
ようなのですが、opensslのmakefileにもpcにもgdi32をリンクするよう
指示がされているのですが何故無視?されてしまうのでしょうか。
そりゃ、スタティックリンクだから
静的ライブラリだから-lgdi32つければ動くんじゃね?
pgr
#pragma が無いとコンパイル出来ない人か
x86_64-w64-mingw32-gcc -I./../intl "-DBINDIR=\\f:/bin/work/MinGW64/bin\"
-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wno-format
-Werror -g -O2 -D__USE_MINGW_ACCESS -MT archive.lo -MD -MP -MF
.deps/archive.Tpo -c -o archive.lo ../../bfd/archive.c" -o archive.o
ここで
x86_64-w64-mingw32-gcc.exe: fatal error: no input files このエラーがでました。
'"'の数が合わないのですが、makefileのどこで'"'が混入しているのかわからない><;
分かったらまた来てね
分かったら来る必要ないだろうがカス
だから聞いてんだろうが
頭イカレてるんか?
112 :
109:2013/03/26(火) 20:15:06.79
うーん
bfd/makefile line334 '"$(bindir)"'→'$(bindir)'
それと
cソースが char * debug_filename = bfd_follow_gnu_debuglink (abfd, DEBUGDIR);
makefileが -DDEBUGDIR=\"$(DEBUGDIR)\"で
error: expected ')' before ':' tokenでエラーになります。
cソースのDEBUGDIRが"……"になるようにするにはどう書いたらいいですか?
MSYS + MinGW + gcc もここで大丈夫ですか?
今月の同じ日に mingw-get-inst で構築した2つの端末の MSYS 環境があるのですが、
gcc のコンソール出力が一方では日本語表記なのにもう一方だと英語のままという現象に遭遇しています
ビルドそのものは正常に通るので緊急性はないのですが、現在はC99記述ソースの評価ビルド用途のみで
深く触る段階ではないので、簡素に扱うため出来れば解決したいと考えています
/share/locale/ja/LC_MESSAGES/gcc.mo はいずれも正常に見えるので、読みに行く設定に何かが
起きているように思いますが grep をかけても何処を調整すれば良いのかが分かりません
export LC_MESSAGES=ja_JP.UTF-8 を明示的に指定しても変化はありませんでした
端末は同一OSの同一SPで、違いと言えば日本語不可の環境ではインストール先がNTFSでなくFAT32な事位です
他の原因には何が考えられるでしょうか?gcc 4.7.2、MinGW 5.4.2(a) です
>>109 configure ... --prefix=f:/bin/work/MinGW64 ...
ならどう?
115 :
109:2013/03/27(水) 00:05:24.86
>>114 linkが走りませぬ
/usr/bin/sh: C:binMinGW1.0binworkMSYS64/i686-pc-mingw32/x86_64-w64-mingw32/lib: No such file or directory
116 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/03/27(水) 00:23:34.01
64bit SEHが簡単にできるようにして欲しい!!
libSEHみたいに
>>115 f:/bin/work/MinGW64じゃなくて
f:\bin\work\MinGW64で指定していないか?
>>115 エラーメッセージをよく見ろ。あんたの指定したとおりのパスになっているか?
119 :
115:2013/03/27(水) 15:56:50.52
もともとconfigureには--prefix=/f/bin/work/MinGW64と書いていて
makefileにはAM_CPPFLAGS = -DBINDIR='"$(bindir)"'こう書かれていて$(bindir)はprefixに書いたものにbinを足したものでしょうか?
makeが実行時に"/の文字の組み合わせを勝手に\\に書き換えてしまうようで、すると"の対が崩れてしまう。
makeはまたも勝手に解釈してbinの後ろの"を\"に置き換えて-DBINDIR=の前とarchive.cの後ろに"のペアを付け加えるので
archive.c"をコンパイル出来ない(そんなソースファイルは無い)というエラーが出ます。
なので"を使わないようにbfd/makefileの334行目を'"$(bindir)"'から'$(bindir)'に書き換えたらmakeが出来ました。
MSYS上でやってるんだろ…
121 :
113:2013/03/27(水) 19:09:44.76
新たに分かった事を書きます。
gettext() を使用する簡単な Hello world を作成してみた所、
.mo を /mingw/share/locale/ja/LC_MESSAGES/ に配置し bindtextdomain(, "/mingw/share/locale") としてもやはりNGですが、
<カレント>/ja/LC_MESSAGES/ に配置し bindtextdomain(, ".") とすると正常に変換が行われました。
( bindtextdomain()、textdomain() の戻り値は全て真。念の為 bintextdomain(, "/<MinGWインストール先絶対パス>/share/locale") を試してもNG )
理由は不明ですが、問題の方の端末では何故か gettext() 系から /mingw/share/locale が見えないようです。
( /etc/fstab に異常はなく ls や cp 等の挙動を見ても /mingw/share/locale のマッピング自体は正常と思われます )
原因としては何が考えられるでしょうか。
その<カレント>がMinGWのインストール先と異なるドライブレター配下なのでは?
gettext() を擁する libintl は内部で msvcrt._open() を用いて.moを読み込むが、
この際MSYS環境を考慮してパス変換を行っている訳ではなく _open() にパスを丸投げしている
例えば etc/fstab が 'D:\MinGW\ /mingw' であっても
bindtextdomain('/mingw/share/locale') → ×_open('D:\MinGW\share\locale\ja\LC_MESSAGES\gcc.mo') ○_open('/mingw/share/〜/gcc.mo')
bindtextdomain('.') → ×_open('.\ja\LC_MESSAGES\gcc.mo') ○_open('./ja/LC_MESSAGES/gcc.mo')
従ってドライブレターが違えばgccを実行してもgcc.moは見えないし、〜:\MinGW以外のパスに
MinGWをインストールしても同じ事が起こる
なので常に同じドライブレターでプロジェクトを扱うか、どうしても違うドライブレターを使いたいなら
そのドライブレターに \MinGW\share\locale\ja\LC_MESSAGES ディレクトリを作成して gcc.mo を
放り込む、もしくは subst を使うといい
(続き)
蛇足だが同種の話で locale.alias も現在の MinGW 用 gcc 内で正常に処理されていなかったりする
本来は決め打ちで 'c:/MinGW/share/locale/locale.alias' を読むようビルドしたつもりだったっぽいが、
何かのビルド障害があったらしく 'c:MinGWsharelocale/locale.alias' という謎めいたパスを読みに行く ( ゚д゚)
なおこれは gcc に限った話ではなく、自分の取得した版だとMinGW\bin配下の58個のexeの内26個が同じビルド状態になってるっぽい
MSYSでやっているのに--prefix=にドライブ指定してちゃんとそのドライブの
指定フォルダにインスコしてくれるのか
'c:MinGWsharelocale/locale.alias'にはワラタ
どうするんだよこれ
125 :
113:2013/03/28(木) 07:39:35.37
>>122 ありがとうございます!
なるほどそういう事だったのですね。確かに問題の端末ではビルド対象とMinGWが別ドライブです。
/ドライブ/ 指定で ls、cd、makeとも正しく扱えていたので考えが及びませんでした・・・。
gcc.moを放り込む方法で上手くいったので当面はこれで行こうと思います。
mingw-get で iconvかnkfをインストールするには
なんていうパッケージを入れればいいの?
$ mingw-get list | grep '^Package:.\+iconv'
Package: mingw32-libiconv
Package: msys-libiconv
ってでたけどライブラリだけじゃなくて
icomvコマンドも入るの?
distro mingw 4.8
最近、gowを使い始めたんだけど、gowのbashで.shの実行ってできないんだけど、誰かおしえてくたさい。
cmd.exeだとmklink使えるんだけど
cygwinのMinGWではコマンドが見つからないんだけど
何かインストールしないとダメなのかな?
133 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/04/18(木) 09:28:01.83
134 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/04/18(木) 09:30:52.08
64bit SEHのインラインアセンブラが死ぬほど難しい。マニュアル見ないとダメだこりゃ
Mingw-w64でBoos tを64ビットコンパイルするにはどうすりゃいいの?
コンパイルエラー出るんだが。Linux上でクロスコンパイルした方が楽かな?
TDM4.7ならライブラリのビルドは成功するぞ、ってか今試した
ちなみにウチは、gcc4.8 or 4.9だとライブラリのビルド自体失敗する。
具体的には、cc1plusがハングする。
wxも同様で、wxの場合どっかの海外のBBSで開発メンバーらしき人が4.8じゃ
無理だから4.7使えって書いてあった(それでもパッチ当てなきゃビルドできない
けど)。
なのでFLTK使ってる。
おお確かにTDM-GCC4.7.1ならうまくいったわ
(--layout=systemにするとDuplicate nameとか出てダメだけど)
gcc4.8.0で同じようにcc1plusでクラッシュしてた
distro mingw 10.1
コマンドラインで実行ファイルのプラットフォームを識別する方法ってありませんか?
バイナリでPEヘッダみれば、32か64かわかりますが、わざわざビューワー起動しないといけないので…
objdump -i してみて"peごにょごにょx86-64"があれば objdump で見れる
fileコマンド
142 :
デフォルトの名無しさん:2013/05/29(水) 16:54:39.08
最近のGCCはwin2kサポートしてないの? 作ったアプリが起動できないんだけど
>>142 どんなメッセージを見るの?
もしかしてx64のバイナリつくってたり?
-m32付けてるから32ビットのはず。
メッセージが出ないで起動失敗
う、ういるす様のたたりじゃ
gcc 2.7.いくつだっけかはc++でコンパイルするとmainに行く前に終わってたな。
-O2つけると浮動小数点演算バグりまくりとか。
4.8.1のmingw-w64出たけど、x64 boostのマスライブラリ作成でcc1plusが落ちるの直ってないんだな
これはBoostじゃなくmingw-w64で直すべきだよな。
distro mingw 4.8.1
msys2使ってる人ってオランの?
g++で作成された32-bit EXEが古い環境(Win2k、WinXP)で正常に
動作しないバグがあるようだ。
メッセージを表示しないで起動しなかったり、メモリ違反になる。
どのg++だよ。自分でビルドしたならまずそれを疑うべきだろ
またg++で作成したexeで古い環境ではサポートしてないAPIやライブラリを使ってれば当然まともに動かない
そして正当な指定と思い込んで実は適切でないコンパイルオプションを指定してコンパイルすればやっぱり問題はおきる
あれか、dll依存でビルドしておいてexeだけ持っていったとかだろ
tdmつかってます。cstdintをincludeしてもint64_tが使えないのはなぜですか?
つかえるようにしかた教えてください。
154 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/25(火) 21:21:01.96
>>153 GNU extensionsを有効にしろ
>>片山博文MZパンク ◆0lBZNi.Q7evd
どうやるの?
156 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/06/26(水) 18:40:25.25
-std=gnu99
-std=gnu11
-std=gnu++03
-std=gnu++11
のどれか
なんでcstdintがGNU拡張なんだよ
-std=c++11でいいだろ
理由は、エクリプスがstd:int64_tがマクロで隠されていると思い込むバグでした。
しかも<cstdint>をincludeしなくてもstd::int64がつかえるのはなぜですか?
>>158 本日Keplerが出たから入れ替えたら直ってるかな
後からやってみる
KeplerにしたらDistro MinGWをMinGW GCCとしてツールチェーンで認識しなくなった
いろいろ検索してみたら、どうもレジストリを見ているらしい
取り敢えずアンインストール情報に適当にDistro MinGWを登録したら警告は出るけど
環境変数はうまく設定出来るようになったので実用上は問題はない
しかし気持ちわるいな
MinGWのある場所を検索する方法が変わったのか?
相変わらずEclipseは馬鹿だな
ftello64 と fseeko64 を探す
>>162 とりあえずリンクするライブラリのパス(-L で指定するやつね)が
mingw32 用のを指しているか確認すべき。
そっちの環境がわからんが、ひょっと見では cygwin 用と mingw 用が混じっている指定に見える。
あと、ftell() とか fseek() の入った素の C ソースを g++ でコンパイルしているのが気になる。
デフォルトでは gcc とリンカの動き方が違ったと思う。
リロードして
>>163 ので気付いた。
コンパイラは 64bit 版なのに(ftello64() をリンクしようとしてる)ライブラリは 32bit 版使ってるね。
64bit 用はうちの環境では /usr/x86_64-w64-mingw32/sys-root/mingw/lib にある。
i686-pc-cygwin は 32bit 用だ。
configure での指定を見直すべきかな。
コンパイラとライブラリを合わせてもfteelo64がリンクできなかったら
configureのオプションに--disable-largefileを追加
リンクは通るがでかいファイルが処理できなくなるかもしれない
msys上でビルドしてみる
>>164 ありがとうございます
/binのgcc.exe等をgcc.exe.backupに、/bin/x86_64-w64-mingw-gcc.exe等を/bin/gcc.exeにコピー
インクルードフォルダ指定を/usr/x86_64-w64-mingw/sys-root/mingw/include
ライブラリフォルダ指定を/usr/x86_64-w64-mingw/sys-root/mingw/lib
ヘッダを参照パスへコピーして無事できました
>>167 そんなことしなくても
CC=/bin/x86_64-w64-mingw-gcc ./configure
でいいのに
自分がやりたいことが「クロスコンパイル」であるということをまず知ろう
cygwinはwindows上で動いてるけど、cygwinネイティブではないプラットフォーム
向けにネイティブとは違うヘッダ等を参照しランタイムとリンクさせるわけで、
linuxからmingwクロスコンパイルするのと基本的に一緒なんだわ
クロスコンパイルといっても別に難しい話ではなくて、
GNU autotools系で生成されたconfigureついてるんなら、普通はconfigure時に
./configure --host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32/sys-root/mingw
などとすればいいだけ
hostにはクロスコンパイラツールセットの3つ組を指定する、これは必須
prefixはどうでもいいがmake installでインストールしたい場所を指定、
少なくともクロスならデフォルトの/usr/localでは嬉しくないだろう
後configureスクリプト内でpkg-config走らせてることが結構あるので、その場合は
PKG_CONFIG_PATHを前もって設定してexportしておいたほうがいい
170 :
デフォルトの名無しさん:2013/07/16(火) NY:AN:NY.AN
Cygwinについて、 WindowsとUNIXとでは、改行と漢字コードにかんしてそれぞれどのような相違がありますか?
また、それにより、どのようなことが起きるのか、相違による影響にどのような対処を行うべきかなども教えてください
>>170 それ語りだすと、とても1レスじゃ収まる気がしないので適当に答える
もっと対象を絞った質問が望まれる
Windows, UNIX、それぞれの基本的な改行コードは<CRLF>. <LF>だ。
それぞれを16進数で言うと以下の通り
<CRLF> = 0x0D 0x0A
<LF> = 0x0A
で、Cygwin上で作成したテキストの改行コードはどうなるか
どうやら<LF>らしい。
ということはWindows上で作成したテキストファイルはそのままでは
つかえないかもしれない。Windows上で作成したテキストファイルは
基本<CRLF>で保存されるから。
試しにメモ帳でテキストファイルを作成して、そのファイルを
Cygwin上で # cat -v <file> してみてほしい
多分結果には ^M という意味不明な文字列が出力されるはず。
これは <CRLF> の CR部分を表している。
プログラムのソースコードのことを聞いてんの?
それとも、プログラムするときのファイル処理の仕方?
>>170 ファイルをメモ帳やバイナリエディタで開けばわかると思うけど、
改行コードは、windowsで"\r\n"、UNIXで"\n"になっている。
UNIXのテキストをwindowsで開くと改行されずに黒い四角が表示される。
fopenでテキストファイルをテキストモードで開くとそのあたりの違いは吸収してくれる。
>>170 <CRLF>, <LF>を気にせずにプログラミングすると
いろいろな不具合が起こる
特にシェルみたいな単純なインタープリター言語はそのせいでバグる
Cygwin上だと<CR>部分が邪魔でまともな動作ができないかもしれない
そのときどうするかというと dos2unixを使用する(←ここテストに出ます)
このコマンドはUNIX系の環境ではだいたい標準で入っているし
なければパッケージ管理システムからインストールできる
$ dos2unix <file>
という具合に実行すれば<CRLF>のファイルが<LF>になる
やったね、これで問題なくプログラミングできる
と、まあここまでがCygwin上での改行コードの違いとそれによる影響、
対処はどうするべきかという話
>>170 次に漢字コード?
なのだが、まず言葉を正確に使うべきだ「文字コード」と呼ぼう
漢字コードだとnkfのような大昔のプログラムを思い出してしまう
嬉しいことに文字コードはWindows, Cygwin(Windows上)で共通だ
この文字コードで保存する、と決めればその文字コードになる。
一応Windowsでの標準文字コードはCP932, 別名Windows-31Jだ。
これはShift_JISの拡張で、一部Shift_JISにない文字を含んでいる。
詳しくはググってください。
Cygwinでの文字コードに関する相違とそれによる影響はそんなに
なさそうなので、このへんにしとく。
だいぶ前からcygwinのデフォルトのencodingはUTF-8になってる
177 :
デフォルトの名無しさん:2013/07/17(水) NY:AN:NY.AN
自分に合うマシなテキストエディタ探してこいよ
謹製のメモ帳は禁止な
MinGWにiconvがはいってるでしょ
nkfの失敗例
半角カタカナは、いつのまにか全角カタカナになったりします
179 :
170:2013/07/17(水) NY:AN:NY.AN
答えてくださった方、ありがとうございました
minttyでCtrl-Cが効かなくなるのはなぜなんだ
愛が足りない
愛って何だ
183 :
デフォルトの名無しさん:2013/07/20(土) NY:AN:NY.AN
人工無能
天才チンパンジー
アイちゃんわろた
鉄道←キチガイ 普通→
↑┌───────────────────────
迷│ 自転車 恋愛
惑│ 政治 ゲハ
│ 声優 ネトウヨ アイドル B'z
│ ネトゲ
│ 韓流 エレキギター
│ アニメ
│ 釣り エロゲ
│ TCG 阪神 フィギュア
│ BL レッズ
│ 東方 楽器
│ ボカロ 歴史 特撮
│ 漫画 車バイク
│ 軍事 格闘技 模型 ゲーム
│ オーディオ PC カメラ
無│ 野球 サッカー
害│ ロボット 海外ドラマ
↓│ 切手 クイズ
なんでや
普通の反対は特急、
無蓋の反対は有蓋やろ
在特←キチガイ
ですね判ります
なんでや!阪神関係ないやろ!
msysからNTEmacs起動して、grep-findするとxargsうんたらで失敗するんだがなんとかならんですかね、これ
cygwinだと問題なく動くんですが…
cygwinはやぱっり糞
面倒でも仮想環境構築したほうが結局は面倒事が少ないよ
長いので2レスに分けて投稿します。
VC++で組んでいたプログラムをgccでコンパイルできるように修正していた時のことです。
$ gcc -O3 code.cpp
code.cpp: 関数 ‘void Split(int, int, int*, int, int*, int*, int*, int, int, int, int&, int*, int&, bool, int, int, char**)’ 内:
code.cpp:1036:32: エラー: no matching function for call to ‘std::basic_ofstream<char>::basic_ofstream(std::string&)’
code.cpp:1036:32: 備考: 候補:
In file included from code.cpp:121:0:
/usr/lib/gcc/i686-pc-cygwin/4.7.3/include/c++/fstream:629:7: 備考: std::basic_ofstream<_CharT, _Traits>::basic_ofstream(const char*, std::ios_base::openmode)
[with _CharT = char; _Traits = std::char_traits<char>; std::ios_base::openmode = std::_Ios_Openmode]
/usr/lib/gcc/i686-pc-cygwin/4.7.3/include/c++/fstream:629:7: 備考: 第 1 引数を ‘std::string {aka std::basic_string<char>}’ から ‘const char*’ へ変換する方法が不明です
/usr/lib/gcc/i686-pc-cygwin/4.7.3/include/c++/fstream:614:7: 備考: std::basic_ofstream<_CharT, _Traits>::basic_ofstream() [with _CharT = char; _Traits = std::char_traits<char>]
/usr/lib/gcc/i686-pc-cygwin/4.7.3/include/c++/fstream:614:7: 備考: 候補では 0 個の引数が予期されますが、1 個の引数が与えられています
/usr/lib/gcc/i686-pc-cygwin/4.7.3/include/c++/fstream:588:11: 備考: std::basic_ofstream<char>::basic_ofstream(const std::basic_ofstream<char>&)
/usr/lib/gcc/i686-pc-cygwin/4.7.3/include/c++/fstream:588:11: 備考: 第 1 引数を ‘std::string {aka std::basic_string<char>}’ から ‘const std::basic_ofstream<char>&’ へ変換する方法が不明です
と表示されたので、1036行目の「std::ofstream fout(FileName2);」(FileName2はstd::string)を、
197 :
196:2013/07/24(水) NY:AN:NY.AN
「std::ofstream fout(FileName2.c_str());」に書き換えてコンパイルしたところ、
$ gcc -O3 code.cpp
/tmp/ccZuON0C.o:code.cpp:(.text+0x16): `std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)' に対する定義されていない参照です
/tmp/ccZuON0C.o:code.cpp:(.text+0xbcf): `std::cin' に対する定義されていない参照です
/tmp/ccZuON0C.o:code.cpp:(.text+0xbd4): `std::istream::operator>>(int&)' に対する定義されていない参照です
(中略)
/tmp/ccZuON0C.o:code.cpp:(.text+0x7486): `std::__throw_bad_alloc()' に対する定義されていない参照がさらに続いています
/usr/lib/gcc/i686-pc-cygwin/4.7.3/../../../../i686-pc-cygwin/bin/ld: /tmp/ccZuON0C.o: 誤った再配置アドレス 0x29 がセクション `.text$_ZNSt5dequeIiSaIiEED1Ev[__ZNSt5dequeIiSaIiEED1Ev]' 内にあります
/usr/lib/gcc/i686-pc-cygwin/4.7.3/../../../../i686-pc-cygwin/bin/ld: 最終リンクに失敗しました: 無効な操作です
collect2: エラー: ld はステータス 1 で終了しました
などと、大量にエラーメッセージが表示されてしまったのです。
最初のエラーは「std::ofstreamのコンストラクタはconst char*型しか取らない」ということで、
だったらc_str()でstd::stringをchar型に変換して渡しても問題ないはずですよね?
どう書き直せばいいのでしょう……ご教示願います。
C++はg++でコンパイルしてね
>>198の言うとおり
あと
g++ code.cpp -I/usr/include -L/usr/lib -lstdc++ -o code
みたいな感じのインクルードとリンクが必要ではないか
200 :
196:2013/07/25(木) NY:AN:NY.AN
>>198-199 g++で試してみたら無事にコンパイルが通りました。ありがとうございます。
201 :
デフォルトの名無しさん:2013/07/25(木) NY:AN:NY.AN
www
最初は誰でもはまる、どんまいだ〜どんまいだ〜
>cygwinはやぱっり糞
>面倒でも仮想環境構築したほうが結局は面倒事が少ないよ
キリっ
204 :
727:2013/07/27(土) NY:AN:NY.AN
NXTというARMを積んだ教材ロボ用のサンプルプログラムをコンパイルしようとしているのですが、
VAIO /cygdrive/c/cygwin64/nxtOSEK_v218/nxtOSEK/samples_c/helloworld
$ make all
Compiling ../../ecrobot/../toppers_osek/kernel/alarm.c to alarm.o
../../ecrobot/../ecrobot/tool_gcc.mak:96: recipe for target `build/kernel/alarm.o' failed
make: *** [build/kernel/alarm.o] Error 127
となってコンパイルができません、どなたか解決策をお願いします。
あとnxtOSEKチュートリアルというページを参考にcygwinの環境を導入しました。
206 :
727:2013/07/27(土) NY:AN:NY.AN
>>205 このエラーは自力で解決できました。これとは多分別だと思うのですが....
行番号が出てるんだからそこを見ろとしか
エスパーいませんか
209 :
デフォルトの名無しさん:2013/07/28(日) NY:AN:NY.AN
山口で溺れてる人が見える
本物来たよ
IDEって何がオススメですか?
CodeLite
eclipse
code::blocks
とか色々ありますね。
QtCreator
codeblocksはオワコン
netbeans
CodeLite
初心者スレで、こっちでやれって提案されたんでマルチ言うなよw
で質問
linux サーバに、win7 mingw msys mintty から ssh 接続
ls ってやると、日本語名ファイル、ディレクトリが文字化けするんで
応急処置として nkf かませる alias で対応したんだが、なんかもっと
いい方法ある?
他のコマンドも化けるに決まってるんで、都度 alias 作る嵌めになること
考えると、気が遠くなる
日本語ファイル、ディレクトリ名は付けるなってのはナシの方向で
俺自身は作ってないんだが、デフォの環境が'ダウンロード'とか
'公開'とか、そういうのがいっぱいあるんだわ
217 :
216:2013/07/31(水) NY:AN:NY.AN
自己解決した
putty の日本語パッチ当てたの使ったら化けなかった
騒がせて、すまんかった
puttyならパッチ当てなくてもいける
>>211 MSのVisual Studioが良い
GCCを土台にしている限りデバッグやトレースはIDE側でそれほど改善できないだろ。
GCC自体の機能を使うほかない。
VCは一体で同じ会社で開発している利点がある。
clangはまだ使えないのか
Windowsでビルドするよりも、仮想環境でWindows向けにクロスコンパイルしたほうが速いことが判明。
そこで、自動的にビルド環境を作ってくれるmxeというものを見つけたけど、だれか使い方分かる人いない?
mxe.cc
例えばGCCをビルドするときは、
make gcc
と入れてビルドすると、それに必要なライブラリも自動的にビルドしてくれる。
あとは、
export PATH=/[mxeのインストールパス]/usr/bin:$PATH
export PKG_CONFIG_PATH_i686_pc_mingw32=[mxeのインストールパス]/usr/bin/i686-pc-mingw32-pkg-config
でパスを通してconfigureを実行するときに
./configure --host=i686-pc-mingw32
といれるらしいけど、どうもライブラリの読み込みがうまくいかない。
教えて偉い人。
MinGWでlinuxのwhichコマンド、またはそれに相当するようなコマンドって使用できませんか?
なんか最近いろいろな c-compiler が入ってきたみたい
gcc-3 -mno-cygwin のかわりはどれ?
>>223 msysに/bin/whichがある(ただしShellScript)
cygwin使いがmingw環境に移行しようとして詰まったんだが
msysでパス周りの処理どうなってるんだ?
229 :
デフォルトの名無しさん:2013/08/05(月) NY:AN:NY.AN
>>230 そういうの!助かる
予想以上には複雑だなあ……
msys環境からexecしたら引数が変換されるって書いてあるけど
msysバイナリからのファイルアクセスも同じように解釈してくれるって事でいいのか?
あとmingwでコンパイルしたバイナリってmsys環境?win32環境?
msysのパス周りってcygwinから/cygdrive抜いたもんだと考えればいいだけじゃね?
バイナリもすべてwin32ネイティブだからcygwinみたいにcygpath -wとかしないで済むし
はるかに単純だろ
mingwでビルドしたら64bitか32bitのwindowsネイティブだろ。
cygwinのような仲介用DLLなどない。
性能は上がって、linuxとの互換性は少し下がってwindowsとの互換性は上がる。
>>232 msysは
C:\windows
が
/c/windows
になる
>>233 mingwのIOめっちゃ遅いよ。
最近はmingwも専用dllが必要でパスが通ってないと怒られる。
virtual boxにLinux入れてプログラム書いたほうがconfigureやらコンパイルやら全てが速い。
wxWidgets使うなら仮想PCのLinuxでデバッグして最後にmingwでビルドの方が捗る。
>最近はmingwも専用dllが必要でパスが通ってないと怒られる。
おお、勉強になった。
>>234 何を言ってるんだかよくわからない
> mingwのIOめっちゃ遅いよ。
MinGWは基本MSVCRTやOSに丸投げだろ
つまり「WindowsのIOがめっちゃ遅い」と言ってるのと同じだと思うのだが……
MinGWじゃなくMSYSなら同意で、MSYSが遅い理由はCygwinと同じ、つまり
POSIXエミュレーションをしていてそれが遅いから
> 最近はmingwも専用dllが必要でパスが通ってないと怒られる。
うちではCプログラムの場合は、専用dllへの依存は生じないけど
何のことを言ってるの?
C++の場合はスタティックリンクしない限りはlibstdc++やSJLJ絡みのDLLへの
依存が生じるけど、これは昔からの筈
drarfとsjljで迷った
sjljの方がリンクしやすいが、実行時コストはdwarfの方が低い
>>237 msysでmingw-gcc使ったコンパイルが非常に遅いのはmingwのせいであってmsysのせいじゃないだろ。
virtual box上のLinuxのgccだとコンパイル速いんだよね、これ。
windowsのIOが遅いならvirtual box経由ならさらに遅くなるはずだけど実態は違う。
mingw gccが単に遅いだけかもしらんけど。
コンパイルと実行ファイルの速度を混ぜるな。
virtual boxで速いのは、予想だけど仮想HDDが一ファイルにまとまっていて
ヘッダなどを沢山読み込む時、物理的なIOが発生しないからでは?
>>240 え?
mingwを使ったファイルIOでユーザーみんなに共通しているものがmingw gccでのコンパイルじゃん
Windows上でのmingw-gccのコンパイル速度やリンク速度が遅いといいたいのなら
そう書けよ
「mingwのIOめっちゃ遅いよ」じゃ何のことを言ってるんだか意味わからんわ
「mingwの専用dllが必要で」は何のことなんだ?
>>242 「MinGWのコンパイル速度が遅い」からといって「I/Oが遅い」とは限らんのだが。
なぜI/Oがボトルネックであると判断したんだ?ボケが
>>243 > 「mingwのIOめっちゃ遅いよ」じゃ何のことを言ってるんだか意味わからんわ
お前の読解力がないだけじゃね?
理解できてる人はちゃんと存在してるんだし
> 「mingwの専用dllが必要で」は何のことなんだ?
えっ
MinGWってDLLなしで単体で動くようになったの?
へぇ〜
Distro MinGW ようやく64bitネイティブになった
だからその
>MinGWってDLLなしで単体で動くようになったの?
「MinGW」でお前が言わんとしてる意味が不明確だと言ってるんだよ
どうやらMinGWのコンパイラツールセットの事を言っているらしいのは分かったが
大半の人にとっては、ツールセットが何らかのDLLに依存してるかどうかは
どうでもいいことで、多分
>>236 あたりはMinGWでコンパイルして生成した
バイナリが(cygwinのように)特殊なランタイムに依存するようになったという
意味だと思った
>>246 コンパイル速度のことをIO速度と称してる人間がいるだけだろ
そんな難しい話か?
64bitはしらないが。
32bitのMinGWは以前からDLLに依存せず、かつネイティブ動作するものを出力できただろ。
>>248 > 大半の人にとっては、ツールセットが何らかのDLLに依存してるかどうかはどうでもいいことで
えっ
静的リンクと動的リンクの違いが「どうでもいい」とかすごい意見だな
静的リンクを多用するWindowsと動的リンクが中心のLinuxの文化の違いを表す重要な側面なのに
>>251 ちょっとまて、ツールセットがDLLに依存してるといいたいのかと思っていたが
生成されるバイナリがDLLに依存しているといいたいのか?
なら、依存しないってのが答えだぞ(少なくともCプログラムでは)
つまり嘘
WindowsのMinGWは、最終的にWindowsAPIか機械語を呼び出して、
基本機能においては特定のDLLやLIBを必要としないだろ。
誤解の無いように言っておくとシステムのDLLには依存するが
それ以外の特殊なDLL(cygwin1.dllのような)には依存しないバイナリを
生成できる
ただしC++の場合はC++ランタイム等のスタティックリンクを明示的に行う必要がある
どうせMSVCRT.DLLだけでしょ
MSVCRT.DLLはWin95時代ならいざ知らず、現在のWindowsではOSの一部だよ
ツールセットならどうでもいいだろ
gccがiconvやらintlやらのDLLに依存してたからといって誰が気にするんだよ
>>233 に対するレスで
>>234 にて
> 最近はmingwも専用dllが必要でパスが通ってないと怒られる。
って書かれると普通の解釈だとビルドされたものに仲介用DLLが必要ってことだと思うよな。
DLL(ダイナミックリンクライブラリ)の話しながら静的リンクがどうこうってのの意味誰か教えて。
260 :
デフォルトの名無しさん:2013/08/12(月) NY:AN:NY.AN
>>234のレスの後半部分の理解が怪しい
>
>>233 >mingwのIOめっちゃ遅いよ。
ここでのIOとはmsysのコンソール上での動作のことを言っていると思われ
>最近はmingwも専用dllが必要でパスが通ってないと怒られる。
これはlibgccとstdc++のことだろうと思う
結局
>>237が言ってることが全部正解。それ以外何がある?
261 :
デフォルトの名無しさん:2013/08/12(月) NY:AN:NY.AN
>>239もちょっとレスに決め付けが入っていて、プログラマーとして未熟
>msysでmingw-gcc使ったコンパイルが非常に遅いのはmingwのせいであってmsysのせいじゃないだろ。
これはダウト。msysはPOSIX環境を再現するため出力は遅い
それをMinGW-GCC自体の速度と勘違いしたのが間違いの始まりだ
>>249、これもダメ
>コンパイル速度のことをIO速度と称してる人間がいるだけだろ
ありえないでしょ
IOってInput/Outputの略だよ。それがなぜコンパイル速度になるのか理解に苦しむし、仕事だったら怒られるレベル
久しぶりに伸びてるから何事かと思ったら…
MSYSの遅さとMinGWを混同してるのがいたのか
そもそもMSYSはCygwinからforkしたもので
単にライセンス形態が変わったものの中身はほとんどCygwinでI/Oはエミュレーションしてるから遅いんだけどな
Linuxと同様にconfigureとかmakeとかしてるんだったら
MSYSで動いてるbashがめちゃくちゃ遅いから全体が遅くなるのは当然の話
そこらへんを解決したいんだったらVPCでもVMwareでもVirtualBOXでもいいから
Linuxの環境を同居させてクロスコンパイルさせれば劇的に速くなる
>>262 なぜクロスコンパイルした方が早くなるのですか?
クロスコンパイルなのですから元環境は関係ありませんよね?
速くなるのはコンパイルそのものだよ
>>264 あーそんなどうでもいいことなんですか(´・ω・`)
クロスコンパイルした後に生成されるバイナリの実行速度の話かと思って期待しちゃいました
こんな簡単な日本語も理解できないとか・・・
語学学校通い直したら?
いやちょっとまてよおまえら
お互い日本語不自由過ぎるだろ
夏だねぇ
経験上gccでビルドしたバイナリはMSVC製より速いぐらいだな、Cだと
少なくともVS2010とかだとそう
ただし例外処理にSEH使えない関係で、C++の場合はかなり遅くなるケースがある印象
>>266-267 簡単な日本語すら不自由な底辺の低脳がやるのがプログラム
だからドカタなんて呼ばれている
cygwinのI/Oはホント遅いよな
cygwin用のtexliveをインストールしてみたがSSDマシンでも余りに遅くて(10ページほどのtexファイルに1分くらいかかる)
ネイティブのものをインストールし直した
>あーそんなどうでもいいことなんですか(´・ω・`)
コイツはデキる
>クロスコンパイルした後に生成されるバイナリの実行速度の話かと思って期待しちゃいました
コイツはデキる
273 :
デフォルトの名無しさん:2013/08/13(火) NY:AN:NY.AN
>
>>264 >あーそんなどうでもいいことなんですか(´・ω・`)
>クロスコンパイルした後に生成されるバイナリの実行速度の話かと思って期待しちゃいました
馬鹿には無理さん遅いぞ
早く馬鹿には無理を浴びせてやってやれよ
>(´・ω・`)
コイツはデキる
msys-vimで、新規に作成するファイルはutf-8、その他のファイルは開いたencodingで保存するって事をしたいのですが、
このような設定を.vimrcに書くにはどうすればよろしいでしょうか?
「新規ファイルなら」みたいなif文って書けますか?
>>259 最近出回ってるmingw-gccって何も指定せずにコンパイルすると
libgcc_s.dll とかが必要になるのがあるから、そのことじゃないの?
リンカーで -static オプション付ければいいだけなんだけどね。
>>262 msysでのconfigureは遅いよね。
ウィルス対策ソフトによってはプロセスのオープンクローズのチェックの
せいで何倍も時間がかかるようになったりするものもある。
知らん間にcygwinが64bit対応してるやないか
MinGW + mintty + msys-vimでうまくgitにコミットする方法無いかな?
vim.exeが立ち上がるけど、画面がどこにもないからタスクマネージャーから終了するしかない。。。
うち普通にvim動くけど
なんかおかしくねその環境
他のvimが立ち上がってるんじゃね
>>280 マジで!?msysGitのインストール後にmingwのインストールをしたからかな?
git config --global core,editor 'vim -c "なんだっけ?"'
みたいな感じで設定して、git commit ってやると、応答がなくなってCPUが頑張りだす。
で、タスクマネージャーで見るとvim.exeってやつが頑張ってる感じになるんですよね。
どうしたら欲しいvimさんが立ち上がるんだろう?
ぐぐーるさんに聞くとgVimならうまくいくんじゃねみたいに言われるけど、
gVimよく分からないから入れたくないんですよね。
which vimでもやってどれが起動してるのか確認したら
>>284 いやcommit。
↓これかなぁと思ってるけど関係無いかも。
ttp://d.hatena.ne.jp/gnarl/20100428/1272441051 普通にminttyの上からvimは起動できるんだけど、
git config --global core.editor 'vim -c "set fenc=utf-8"'
って設定した状態で
git commit
ってやったらvimが起動してするはずなのに画面には出てこない。
which vimは/bin/vim.exe です。
ちなみにwhich gitは ${gitのインストールフォルダ}/bin/git.exe 。
このgit/binにもvimっていう実行可能bashファイルが居るのがだめなのかな?
configの内容を vim から /bin/vim.exeに変えるとエラーがでました。
0 [main] vim 2052 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
さらにオプション(-c以降)をはずすとvimが起動したように見えて、
見た目Okでやったと思ったのにちゃんと動いてませんでした。
普通に文字が入力可能でvimの;wqとかを入力できるモードになりませんでした。
minttyじゃなくてコマンドプロンプトからやったら出来る?
>>286 やってみました。
問題なくvimが起動してコミットログを記入、コミットできました。
こんな警告出てましたが。
Warning: Your console font probably doesn't support Unicode. If you experience s
trange characters in the output, consider switching to a TrueType font such as L
ucida Console!
とりあえずこういう結果でしたが、
今からwinptyのconsole.exeを利用できないかやってみようと思います。
引き続き情報をお待ちしております。
>>288 uname -aの結果を貼れ
>>287 cygwinと同じで複数のMSYS環境って共存できないんじゃないのかな?
Git/bin以下のmsys-1.0.dllをリネームor削除したらどうだ?
290 :
288:2013/08/18(日) NY:AN:NY.AN
>>289 CYGWIN_NT-6.1-WOW64 **** 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin
これです
>>290 インストールされているCygwinは32bit版
ミラーサイトは64bit版
あと、cygwin1.dllのバージョンが古い
最新は1.7.24
>>291 ありがとうございます
そうだったのですか、失礼しました
見直します
Cygwin使ってるんですが、RCTOOLは何を指定したらいいのでしょうか?
Cygwin付属のwinres.exeを指定したら
libtool: link: `regex-dll-res.lo' is not a valid libtool object
と言われてしまいます
>>294 何をビルドしようとしているのか、どこでRCTOOLを指定しているのか書いた方がいいんじゃね?
Autotoolsなら何も設定しなくても自動で選んでくれたはずだが
>>295 >Autotoolsなら何も設定しなくても自動で選んでくれたはずだが
そうだよな。自分でmakefileでも書いているのかな
windows7 64bitPCにsetup-x86_64.exeでCygwin64とx86_64-w64-mingw32の環境をインストールしました
ビルドしているのはregex-2.7でDLLとlibが欲しい
home/xxxx/regex-2.7フォルダにbuildフォルダを作ってそこから../configureしています
(configureの中身)
../configure RCTOOL=x86_64-w64-mingw32-windres.exe --prefix=/cygdrive/f/bin/work/MinGW64 --host=x86_64-w64-mingw32
--build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-arch=i686 --with-tune=generic
CFLAGS="-g -O2 -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -L/usr/x86_64-w64-mingw32/sys-root/mingw/lib"
--enable-shared=yes --enable-static=yes
RCTOOLは一応指定していますが、configureで作られる/home/xxxx/regex-2.7/build/src/makefileの最後がなぜか
.rc.o:
windres --include-dir $(resdir) -i $< $@
.rc.lo:
RCTOOL $< $@
となっていたので、自分で書き換えました
.rc.o:
x86_64-w64-mingw32-windres --include-dir $(resdir) -i $< -o $@
.rc.lo:
$(RCTOOL) $< -o $@
この状態でmakeすると最後の方のlinkで
298 :
デフォルトの名無しさん:2013/08/25(日) NY:AN:NY.AN
息切れか
error.logがlibtool: link: `regex-dll-res.lo' is not a valid libtool object
make.logが ターゲット `regex-dll-res.rc' を再 make する必要はありません; VPATH 名 `../../src/regex-dll-res.rc' を使用します.
ターゲットファイル `regex-dll-res.lo' の必要条件を満たしました.
ターゲット `regex-dll-res.lo' の再 make が必要です.
make[2]: ディレクトリ `/home/km/regex-2.7/build/src' に入ります
x86_64-w64-mingw32-windres.exe ../../src/regex-dll-res.rc -o regex-dll-res.lo
チェインに子プロセス 0x6001244a0 (regex-dll-res.lo) PID 263712 を取り込みました.
生存子プロセス 0x6001244a0 (regex-dll-res.lo) PID 263712
(中略-プロセスが並びます)
ターゲットファイル `libregex.la' の必要条件を満たしました.
ターゲット `libregex.la' の再 make が必要です.
/bin/sh ../libtool --tag=CC --mode=link x86_64-w64-mingw32-gcc -g -O2
-I/usr/x86_64-w64-mingw32/sys-root/mingw/include -L/usr/x86_64-w64-mingw32/sys-root/mingw/lib
-no-undefined -version-info 2:7:0 -Wl,--major-image-version=2 -Wl,--minor-image-version=7
-o libregex.la -rpath /cygdrive/f/bin/work/MinGW64/lib regex.lo regex-dllversion.lo regex-dll-res.lo
チェインに子プロセス 0x6001252e0 (libregex.la) PID 254072 を取り込みました.
生存子プロセス 0x6001252e0 (libregex.la) PID 254072
失敗した子プロセス 0x6001252e0 PID 254072 を回収します
Makefile:271: recipe for target `libregex.la' failed
チェインから子プロセス 0x6001252e0 PID 254072 を削除します.
make[2]: ディレクトリ `/home/km/regex-2.7/build/src' から出ます
失敗した子プロセス 0x60006b470 PID 252004 を回収します
Makefile:262: recipe for target `all-recursive' failed
チェインから子プロセス 0x60006b470 PID 252004 を削除します.
make[1]: ディレクトリ `/home/km/regex-2.7/build' から出ます
失敗した子プロセス 0x60007d530 PID 172788 を回収します
Makefile:192: recipe for target `all' failed
チェインから子プロセス 0x60007d530 PID 172788 を削除します.
となってmakeに失敗します
みなさん、libtoolの使い方知っていますか?
知ってたらDLLにバージョン情報埋め込む方法教えてください
母より
301 :
デフォルトの名無しさん:2013/08/25(日) NY:AN:NY.AN
さくらのVPSを使っておりまして、作業用PCはウィンドウズにMinZWという構成です。
さくら側のsysconfig/i18nは、Lang="ja_JP.utf-8"で対応しましたが、
MinZWのコンソールで文字化けしてしまいます。
一日色々検索していましたが、無能なことに解消方法を見出せませんでした。
先輩の皆様がたに方法ないし学習推奨分野を教えていただければ幸いです。
ぷtty
303 :
デフォルトの名無しさん:2013/08/25(日) NY:AN:NY.AN
minttyを入れた方が対応しやすいということでしょうか?
今は使っていないのですが・・・
railsでアプリを作ろうと素人が悪戦苦闘していますが、いきなり試練がやってきて先が長そうです^^;;
なんでMinGWが出てくるんだよ
TeraTermとかPoderosa、puttyとか使えよ
早速踏み台にされそう
>>297 http://gnuwin32.sourceforge.net/compile.html からrctoolを取ってきてRCTOOLをそのパスに書き換えるか(試していない)
今時のlibtoolのやり方へ書き直す
autoconf、automake、libtoolを入れてconfigure.acのAC_PROG_LIBTOOLを
LT_INIT
LT_LANG(Windows Resource)
に変える
src/Makefile.amの.rc.loの方を
$(LIBTOOL) --tag=RC --mode=compile x86_64ほげほげwindres --include-dir $(resdir) $< -o $@
に書き換える
で autoreconf -fを実行
なんか抜けているような気もするがだいたいこんな感じ
>>304 /home/xxxx/regex-2.7/build/src/
から
$ ../libtool --tag=RC --mode=compile x86_64-w64-mingw32-windres.exe ../../resource/regex-dll-res.rc -o regex-dll-res.lo
をやったらbuildできたようです。autoconfも覚えたいと思います
本当に感謝です
ttp://www.07ch.net/up2/src/lena9444.png
馬鹿には無理
forkを使いたいときunistd.hをincludeするのはわかったけど
リンクすべきライブラリはどうやって調べたら良いですか?
>>307 CygwinならUnixで言うシステムコールに当たるので別途ライブラリを指定せずに使えるはず
実際にどのライブラリに含まれているか調べるにはこんなのとか
/bin/ls -1 /usr/lib/*.a | xargs -i /bin/sh -c 'echo $1; nm $1 | grep fork' --
'{}'
310 :
デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
>>304 (host規制のため返信が遅れてしまいました。)
まことにありがとうございます。
『Ruby on Rails 環境構築ガイド(黒田努著)』で、そういった手順で解説されていたので、それに従っていました。
でもその本は、週末起業家が作る環境というよりは、プロのチーム用の環境構築という感じで書かれていました。
仰るようにMinZWというところから考え直して、ご指摘にもものにした方が使い勝手が格段に良いのかもしれませんね。
他の方を見ていると、さくら側の先の調整だけで片付いている方が多いようですし。
どうも皆様ありがとうございました。
ド素人なので、またお世話になることがあるやもしれませんが、その際には宜しくお願い致します。
おかげさまで、今ファイアウォールの設定までは来ました。
SSHで設定したポートも閉めてしまい焦りましたが(笑)
311 :
デフォルトの名無しさん:2013/08/26(月) NY:AN:NY.AN
結局、Puttyを使わせてもらっています。
今日はRails入れるまでこぎつけます。
また、宜しくお願い致します。
312 :
307:2013/08/27(火) NY:AN:NY.AN
TDM バージョンアップ
キタ━━━(゚∀゚).━━━!!!キタ━━━━。゚+.ヽ(´∀`*)ノ ゚+.゚━━━━!!キ
タ━━☆゚・*:。.:(゚∀゚)゚・*:..:☆━━━!!キタ━ヽ(∀゚ )人(゚∀゚)人( ゚∀)人(∀゚ )人(゚∀゚)人( ゚∀)ノ━!!キタ ━━━ヽ(´ω`)ノ ━━━!!
キタ━━(☆∀☆)━━!!!☆Y⌒Yキタ(※∞'`pq)キタY⌒Y☆
キタァァΣ三(;゚;∀;゚;ノ )ノキ・キタ━━(゚д゚;)))━━!!
キター!!★Y⌒Y⌒ヽ(゚ω。*)ノ゙キタ━(((((っ・ω・)っo((・ω・))oc(・ω・c))))))━ !!!
Windows にMinGWとMSYSを入れています。
メモリリークを調べたいのですが、この環境で使えるツールはありますか?
LinuxではValgrindが使えるようですが・・・。よろしくお願いします。
Application Verifier
which nslookup
>>316 どれか選べ
1) bind-utilsをインストールする(cygwinのnslookupがはいっている)
2) nslookup 2>&1 | iconv -f cp932 -t utf-8 のように実行する
3) Windowsネイティブのコンソールアプリケーションを対話的に実行する際には
minttyを*絶対に*使わないように習慣づける
4) ConEmuやConsole2等、ネイティブ向けの疑似端末アプリに乗り換える
chcp 437か65001という手もありかな
>>315 こんなん出ました。
+ <avrf:logEntry Time="2013-09-11 : 17:16:44" LayerName="Heaps" StopCode="0x13" Severity="Error">
最新バージョンのcygwinを使用しているのですが
/cygdrive/c 等でcドライブにcygwinがアクセスできますが
誤ってデータ削除等を防止したいので cドライブ等にアクセスできなくしたいのですが
設定のやり方が調べてみたのですが見つかりませんでした。
ご存知の方いましたらご教示お願いできないでしょうか
Cドライブにアクセス権のないユーザーアカウント作ってcygwinをそのアカウントで実行とかどうよ
324 :
デフォルトの名無しさん:2013/09/16(月) 22:56:24.66
全くの初心者です。
MinGW、opencobolをインストールしてCOBOLの勉強をしようと思ったのですが、
コマンドプロンプトでcobcと打つと、
「libintl-8.dllが見つからなかったため、このアプリケーションを開始できませんでした」と
エラーが出ます。無知で申し訳ありません、どなたか解決策を教えていただけないでしょうか。
そんなもん、VirtualBOXにLinuxでも入れてCOBOL入れたほうがラクだぜ?
326 :
デフォルトの名無しさん:2013/09/16(月) 23:57:38.59
「libintl-8.dll」というファイルをcobc.exeと同じ場所に置く
327 :
デフォルトの名無しさん:2013/09/17(火) 00:34:35.06
アドバイスありがとうございます、libintl-8.dllを
ダウンロードしようと色々探してみましたが、
どこにもありません。サイトとかご存知でしたら
教えていただけないでしょうか?
328 :
デフォルトの名無しさん:2013/09/17(火) 00:48:17.30
胡散臭いサイトだな
330 :
デフォルトの名無しさん:2013/09/17(火) 00:56:17.61
libintl-8.dllを上記サイトで無事ダウンロードできました。
コマンドプロンプトでcobcと打つと「No input files」と
表示されましたので次のステップに進む事ができそうです。
アドバイスありがとうございました!
331 :
デフォルトの名無しさん:2013/09/17(火) 01:12:19.56
330の者です。
サンプルプログラムをコンパイルすると
$ cobc -x hello.cob
gcc: fatal error: -fuse-linker-plugin,
but liblto_plugin-0.dll not found compilation terminated.
とエラーが出ます。gccのバージョンは4.8.1です。
参考になるサイトや書籍も少なく最初からかなりつまづいています。
初心者レベルの質問で申し訳ありませんが解決法を
ご教授いただけないでしょうか?
「liblto_plugin-0.dll」というファイルを(以下略
333 :
デフォルトの名無しさん:2013/09/17(火) 01:27:15.54
MinGWのどこかにliblto_plugin-0.dllがあるから、ファイル検索してそこにPATHを通す
COBOLなんて未来のない言語なんてやめとけ
335 :
デフォルトの名無しさん:2013/09/17(火) 02:52:23.28
初心者というのは自分で調べる意欲がないと名乗っちゃいかんよ
331はただの産廃
TDM GCCを使ってます。
boostをインストールを公式の方法でコンパイルしようとすると
マイクロソフトのclというコンパイラが見つからないエラーになります。
buildツールがtdm gccを見つけられないのが原因ですか?
公式とはどこの公式だ?
それはMinGWでなくVC++のビルドだ
boostはしばらくビルドしてないがmingwだと指定するオプションがあったように思うんだが
>>336 このスレ住人でboostを自前ビルドして使っている奴は少ないから
boostスレで聞いたほうが良いような気がするが
TDMのGCCって4.7だっけ?
C++の主なGUIライブラリは、4.8以上になるとcc1plusがハングしたな
試したのはboost、wx、fltk
gccは4.8、4.9
この内fltkだけはビルド通った
4.7では全てビルド可能
4.7使ってんのに通らないってconfigureでヘルプ見るなりなんなりしてんのか?
あ、でもboostは
>>340の言うとおり別途ツールが必要だったな
TDM-GCC 4.8.1キテタ
やっとTDMの4.8.1が来た
ウイルス入ってた。
やった、std::thread使えるって書いてある。
348 :
デフォルトの名無しさん:2013/10/02(水) 22:18:47.75
mingwも新インストーラー来てたね。
MinGWにおいて、eclipseにおいてのCDTにおいて、makefile projectにおいて、mingwのupdateと同時に、
久しぶりにup dateしたら、eclipseで他の場所においてあるinclude fileのpath設定しなくても
なぜかincludeファイルの中身の参照ができるんです。
これはmake fileの中身をeclipseが俗に言う盗聴してるということですか?
それともコマンドラインを盗聴しているんでしょうか?
これがはっきりわからないと怖くてつかえません。
おしえてください。
350 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/10/03(木) 13:48:37.01
TDM64-GCC 4.8.1でwinpthreadsを使わない方法を教えて下さい。
351 :
デフォルトの名無しさん:2013/10/03(木) 17:58:02.25
>>349 マジかよ
便利だけど玄人からすると邪魔な機能だな...
gcc -print-search-dirs
してみ
353 :
デフォルトの名無しさん:2013/10/04(金) 01:43:16.31
>>348 きょうインストールしてみたよ
MSYSのコンソールがインストールされなかった。
アイコンは、あるけど、あるだけかなー
bashを起動すればいいんですよね?
354 :
デフォルトの名無しさん:2013/10/04(金) 02:39:12.10
>>353 C:\MinGW\msys\1.0\msys.bat
を実行
355 :
デフォルトの名無しさん:2013/10/04(金) 10:04:56.56
それうまくいかないね
356 :
デフォルトの名無しさん:2013/10/04(金) 10:05:43.10
C:\MinGW\bin>gcc --version
gcc (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
mintty
>>352 そこに入って無いやつのことなんですけど?
環境変数 や
#include "" と #include <> の違い
判ってて喰い下がってんの?
においでにおいでって気持ち悪い日本語だな
mingwをVisual Studio Shellから使用する方法ってある?
無い
4.8.1でもto_stringとか使えないのな。rev5ならOKだったけど。
>>359 わかってないだろ?
とりあえずハードドライブのどこでも良いからフォルダー
を作ってそこに何でも良いからヘッダーファイルを置け。
その後、makefileに-I オプションにヘッダーファイルのパスを書け。
その後、ソースファイルにそのヘッダーファイルをインクルードしろ。
その後、ビルドしろ。
その後、#include "ほにゃらら.h"を右クリックするとホニャララ.hが開けるから
みていろ。
TDMはmultilibやめたのか
x64とx86のバイナリ同時にビルドする人もあまりいないだろうしな
ってかmultilibってシンボリックリンク張ってビルドするんだっけ?
windowsじゃそれ無理だから作れないっぽい
共用ライブラリ.soもMinGWじゃ作れないからhttpdも動かないし、
やっぱmsys+MinGWじゃ色々制約多いのね
MinGWを起動するときのウィンドウが一つ消えて新しいのがすぐに立ち上がるような動作ってデフォルトでしょうか?
それと、普段はMinGWからvimを起動させているのですが、emacsを起動させる方法が分かりません。
一応emacs自体はインストールのしているのですが。
367 :
デフォルトの名無しさん:2013/10/12(土) 17:05:00.44
Cygwinは今もノートンと相性が悪いでしょうか?
>>367 悪い。
setup-x86.exeがpackageをdownloadしなくなったので、原因を調べていたら
Nortonのpersonal firewallが止めていた。
>>368 ありがとうございます
やっぱりダメですか。困ったなー
バスターに変えるか・・・・
>>369 バスターだと相性いいんでしょうか?
Cygwinってセキュリティ系softとの相性が悪いものだと割り切っていたのですが…?
>>370 そうなんですか?
周りではノートンだけの現象と聞いてたんですが・・・
セキュリティ系softを入れないと不安な環境で
入れないわけにはいかないでしょうし
ノートン持ってないから知らんけど、パーソナルファイアウォールって、
指定したソフトの通信を許可する機能ってのがどこかにあるもんじゃないの?
やった上で駄目ならごめん。
>>372 もちろん設定したよ。設定してからはちゃんと動く。
ただ、なんとなく動きがおかしいときに、原因にたどり着くまでには時間がかかるの。
結局、相性が悪いのとは関係ない話だったな
mingwだけどavastにブロックされた事はある
フォルダごと除外リストに突っ込んだ気がする
377 :
デフォルトの名無しさん:2013/10/15(火) 23:08:38.19
378 :
デフォルトの名無しさん:2013/10/15(火) 23:20:45.24
>>377 TDM-GCCからある程度バイナリ引っ張ってきた方が早い
三つ目のリンクは自分も参考にした
379 :
デフォルトの名無しさん:2013/10/15(火) 23:35:45.42
x86_64-w64-mingw32(4.8.2)から
-finput-charset=CP932 -fexec-charset=CP932
が実装されてるぞい
"表\示"
としなくてもよくなったぞい,えがったのー
381 :
デフォルトの名無しさん:2013/10/16(水) 00:10:01.23
わーい、やったぁ
codepad や ideone でもコンパイラオプションを指定できればいいのにねえ
それはそれで、普通じゃないオプションを指定してドヤ顔する奴がでてきそうで嫌だな。
>>382 そういうなら、自分でそんなことできるサイト作れよ
385 :
デフォルトの名無しさん:2013/11/03(日) 16:20:00.03
MinGW,msys-minttyを先日インストールしました。
下記のコマンドを打つと、
$ gcc --version
ポップアップ・ウィンドウが発生し、
--------------------------------------------------------------------
gcc.exe ディスクがありません。
ドライブにディスクがありません。ディスクドライブI:に挿入して下さい。
[キャンセル] [再実行]
--------------------------------------------------------------------
$ gcc --version
gcc.exe (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
と出力されます。同様に簡単なhelloworldプログラムを作成し、
コンパイルしましたが、不明なポップアップウィンドウが出る
事を除いては、問題なく実行ファイルが作成されました。
ポップアップ・ウィンドウが出る原因が分かりますでしょうか?
板違いだとしたら、申し訳ありません。
お手数ですが、アドバイスを頂けると助かります。
[補足]
OS: Windows 8
MinGW: mingw-getで最新版をインストール(mingw32-base Installed Version 201307220)
PATH設定: C:\MinGW\bin;C:\MinGW\msys\1.0\bin; (追加済み)
>>385 「ディスクがありません」はマルチカードリーダをつないでたら出た
>>385 Iドライブって存在するのか? あるなら何を割り当てている?
ひょっとして
>>386言うマルチカードリーダ?
388 :
385:2013/11/03(日) 16:45:44.39
>>386 まさにその通りでした。
マルチカードリーダを外すと解決しました。
本当にありがとうございました。
389 :
385:2013/11/03(日) 16:52:45.17
>>387 行き違いになりましたが、レスありがとうございました。
助かりました。
関係ないけどこれOutlookでも遭遇したことあるんだよなー改善して欲しい
なんで勝手にダイアログ出すの!?
昔はフロッピーディスクと言うものがあってだね。
リムーバルメディアにメディアが入ってない場合、
メディアを挿す必要があるから
普段は趣味でVisual Studioを使っているのですが、GMPを試したいと思い、
homepage2.nifty.com/m_kamada/math/gmp_ja.htm
に従ってcygwinをインストールしました。
2.1〜2.12まで完了し、3はスキップして(既に最新版のGMP5.1.3だったので)、
helloworld的なコードをgccでコンパイルすることには成功しましたが
GMPを使ったコードを試すとgmp.h: No such file or directoryというエラーが出ます
どうすれば解決できますか?
ありがとうございます。解決しました。
windowsでC/C++コンパイルにgcc3.4.5を使ってたのから4.8.1に変えてみたらコンパイルに時間かかり過ぎ
こんにちは世界を表示させるソースに2秒も時間使ってるんじゃねえよ
ごめんなさい
>>396 それはこんなプログラムじゃなかったかい
#include <iostream>
template<char O, bool =O == 'h'? '-' :O == 'w'? '=' :0>class _;
template<char O>std::ostream&operator<<(std::ostream&lhs,_<O,0>*) {
return lhs << O;
}
template<char O>std::ostream&operator<<(std::ostream&lhs, _<(O), 'o'>*) {
return lhs<<(char)(O - '!' + '.' - '-' );
}
template<> std::ostream&operator<<<'~'>(std::ostream& m9,_<'~', 'o'>*) {
return m9<<('m');
}
int main(int orz=3) {
std::cout<<(_<'h'>*)0<<(_<'e'>*)0<<(_<'l'>*)0<<(_<'l'>*)0<<(_<'o'>*)0<<(_<'w',0>*)0<<
(_<' '>*)0<<(_<'w'>*)0<<(_<'o'>*)0<<(_<'r'>*)0<<(_<'l'>*)0<<(_<'d'>*)0<<(_<'!'>*)0<<std::endl;
return 0;
}
最適化が賢くなりコンパイル時間は逆に伸びていると聞く
テンプレートみたいに全部ヘッダに書いて
プリコンパイルしてしまうんだ
gcc遅い -> gcj外せ というテンプレ的やりとりを何度か見た気がするが
デフォはどうなってるんだっけ ググっても見つからない
gccで キーボードの操作をするやり方を知りたいのですが
ライブラリとか関数とか知ってる方いるかな
>>402 キーボードの操作ってなにをやるの?
普通のキーボードは外部からの操作を受け付けるようになんてなってないと思うけど。
まさか、ロボットアームでも動かしてキーを押すとか?w
gccで なのか Win32で なのか
406 :
402:2013/11/13(水) 20:22:14.58
すみません 自己解決しました・・
>>404 キーイベントを発生させる
といった意味でした。
言葉足らなくて申し訳ない
>>405 Win32ですね
MinGW関係なくSendMessageかkeybd_eventで
MinGW画久しぶりに更新されてなのでついでにObjectiv-Cも使えるようにしたいと思い
mingw installation manager で全部マークしてインストールしたんですが
gcc -lobjc test.mってやると↓のエラーがでます
gcc: error: test.m: Objective-C compiler not installed on this system
どうやってObjectiv-Cが使えるようになりますか?
komanew.blogspot.jp/2010/09/windowsobjectivec.html
www.onemoresoftwareblog.com/2012/03/objective-c-with-mingw.html
あかんわ
MinGW-buildsでも同じエラー
どうしてもregexを使いたいならClangを入れろという事か
C++11使えばregex使えるんじゃないの?
regex.hなのかregexなのかが不明だわ
エラーも不明
http://gcc.gnu.org/ C++11 <regex> support [2013-10-03]
Regular expression support in libstdc++-v3 is now available.
と書いてあるな
417 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/12/10(火) 17:12:11.08
directmusic使えないの?
上がっていると思ったら。荒らし上げか
mingwでC++11 <regex> って4.8じゃ駄目なのか
脳メモしとこ
ギリシャ文字も使えるプログラム言語作ろうとおもってるんですけど、
32ビットユニコードに対応するにはどうしたらいいですか?
最近のcygwinはutf8が標準なんだから、何の問題もないだろ。
逆って何だ?
utf-32とutf8の変換なら普通にiconvでもすればいいだろうけど、それとギリシャ文字を扱うのと何の関係があるんだ?
>>419 wchar_t(16ビット)じゃダメな理由は?
プログラム言語作ろうってレベルの人間の質問じゃない
たぶん後付けで対応できるからそれ抜きですすめてみたら
>>422 逆とはMinGWの方です。
>>423 機種依存文字をつかいたくないかつ沢山の種類の文字を使いたいニーズにこたえるためです。
>>424 プログラム言語の第一歩は字句解析を作るところから始めます。
>>425 それはできません。
やりたいコードを書きます。環境はTDMGCC eclipseです。
char32_t x=U'あ'
char32_t y[]=U"いうえ";
char32_t z;
std::in>>z;//おを入力
std::cout<<x<<y<<z<<std::endl;
>>426 MinGWでもコンパイラオプションは必要だがstd::cin以外はそのままコンパイルできる
iostreamがchar32_tをサポートしていないのでちゃんと表示されないけど
入出力時にはiconvやlibicuとか別のライブラリを使って変換してやならければいけない
内部で扱う分にはstd::u32stringとかある
MinGWがmsvcrt.dllを使うのはいいけど、
printf()の機能が貧弱で移植性が無くて泣きたくなる…
今のところ分かってるのは
%pで0xがつかない
%zがない
%lldがない
fold_builtin_printf
zが無いおかげで32bit, 64bit, MinGW, GCC(Linux)の組み合わせで
size_tをprintfするポータブルな方法が無くて詰んだ…
ググったらとりあえず
#include <inttypes.h>
printf("%"PRIuPTR"\n", size);
とすればいいようだ…
>>429 おぅ!気付かなかった
> fold_builtin_printf
これって-fno-builtin-printfしてみろってこと?
それでも結果同じだったよ
MS系だと符号付き64ビット整数は%I64dだね
__int64サポート前のWin95とかの時代、(U)LONG_INTEGERが構造体表現しか含んでなかった頃の独自拡張の歴史的経緯
当時のC標準外サポートの泥臭い独自クッションの名残は他にも色々あるな、FARとかNEARとかLPとか…
LONG_INTEGERじゃなかったLARGE_INTEGERだ
__USE_MINGW_ANSI_STDIOってのもあるらしい
>>436 おお!ありがとう
これやるとexeが22KBほど増加するけど背に腹は変えられない
msvcrt.dllが対応するまでこれで凌ぐかな(対応しない可能性が高いが…)
>>427 ありがとうございます。
やってみます。
426の環境で
char32_t a=U'あ'
とやると以下のメッセージが出ます。
converting to execution character set: Illegal byte sequence
どうしたらいいですか?
char32_t a=U'a'
ならメッセージはでません。
-finput-charset
はソースコードの文字コードのしていじゃないですか。
-fexec-charset
の実行時の文字集合っていうのが意味がわからないんですけど、
文字列とがデフォルトではutf-8になるということですか?
char32_t x=U'a';
はaがutf-8に変換されてx入るわけじゃないですよね?
おしえてください。
>>442 試してみたら分かるでしょ
u, U, L以外の文字・文字列が-fexec-charsetで指定した文字コードになる
試してないのでわかりませんでした。
ありがとうございました。
Cygwin x86_64でvimをビルドしている途中に
no terminal library found
checking for tgetent()... configure: error: NOT FOUND!
You need to install a terminal library; for example ncurses.
Or specify the name of the library with --with-tlib
などといわれたので、setup-x86_64.exeからlibncursesw-develをいれてから再度
make distclaenした上で-with-tlib=ncurseswを加えてみるもうまく行かず、途方にくれています。
どうしたらよいのでしょうか。
追記です
一応configureのオプションは
sourceforge.net/p/cygwin-ports/vim/ci/master/tree/
のviim.cygportに記載されているものに準拠しています。
cygport vim.cygport download #追加のパッチはなぜか自動でDLされない
cygport vim.cygport prep
cygport vim.cygport compile #クロスコンパイルのチェックに引っかかるのでCCを調整
結局
>>445のエラーが出ます。
config.logを見てみてください
ncursesのライブラリをリンクしてconftest.cのビルドが通るか見ているはずです
そこのログはどないな感じですか?
448 :
445:2014/01/07(火) 23:23:50.11
ログを見るとLDFLAGS="-L/usr/local/lib"となっていて
ls /usr/local/libとすると何もありませんでした。
そこでLDFLAGS="-L/usr/lib"にしてconfigureするとmakefileは作成できました。
makeをすると
if_cscope.c:19:23: fatal error: sys/wait.h: No such file or directory
# include <sys/wait.h>
というエラーが出たので、
CPPFLAG S=" -I/usr/include/"にしてmakeしました…
すると、今見ている途中なのですが何かしらエラーが起きてmakeできませんでした。
449 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 10:49:21.18
スラッシュが余分
--prefix=/usr
vimがどうかは知らんけど、一般にGNU autoconfのconfigureで
--prefix=/usr指定しないとビルドできないケースなんて聞いたことないぞ
デフォルトのprefixは/usr/localだし、$HOME以下指定してビルドするケースも多い
-Iや-Lで余分なディレクトリ追加指定されたからといって、普通ならgccはデフォルトで
/usr/includeや/usr/libの中は探すだろ
gcc --print-search-dirs の出力はどうなる?
なんか腐ってんじゃねーの
あなたの頭の中のこと
たまにローカルビルドできない(できなく)ことあるよ
「CPPFLAG S」ではなく「CPPFLAGS」
>>445 公式から落としたvim74を./configure && makeしてみたが問題無かった
x86_64 Cygwin gcc バージョン 4.8.2 (GCC)
環境が腐ってると思う
32bitかmingwのgcc呼んでるとかじゃね?
configureオプションはcygportからX関係をのぞいたやつ
$ cygport vim.cygport prep
*** ERROR: lua is required to build this package
$ cygport vim.cygport prep
*** ERROR: pkg-config is required to build this package
$ cygport vim.cygport prep
*** ERROR: python3 is required to build this package
$ cygport vim.cygport prep
*** ERROR: ruby is required to build this package
457 :
445:2014/01/08(水) 19:25:42.10
export MAKE_MODE=unixを追記した上でcygwinを入れなおしたらビルドも通せました。
結局初歩的なミスで恥ずかしい限りです。
助言を下さった皆さん、どうもありがとうございました。
俺がわからないものは作るなっていってるだけでしょ
460 :
445:2014/01/08(水) 23:19:10.95
改めていろいろ試したところ
C:\cygwin\bin\zsh.exe -c "/usr/bin/mintty -&"
というショートカットからと
@echo off
C:\cygwin\bin\zsh.exe -c "/usr/bin/mintty -&"
exit
というバッチファイルからでは結果が違いました。
(MAKE_MODE=unixの有無は関係なかったです。)
前者はクロスコンパイルと認識され
後者はビルドまでいけました。
もうよくわからない…
clang3.4のビルド済みバイナリ入れてみたんだが、
cout << endl;
これがあると実行時に落ちる
g++に戻すと普通に動いた
自前でclangビルドした方が良いんだろうか?
自分の環境が腐ってんのかな…
特殊なライブラリーを使わない限り
utf32の入出力ってファイル入出力が
普通の人のやりかたですか?
>>462 俺語を使わずに、分かるように質問し直してくれ。
標準出力ではたしか数値になって出力されますよね。
だからint32_t文字列をバイナリとしてファイルに書き込みすると言う意味です。
UNIX的な概念では標準入出力もファイルだな
gdbって知ってる?
使ったことある?
意味が分からないけど「普通の人」というなら、それこそ普通はUTF-32は
内部形式に使うことはあっても入出力にはほぼ使われないぞ
もし使うのなら、
>>464の考え方で基本的には正しいけど
エンディアンの問題があるので注意
(逆に言えばそこまで含めバイナリと扱いが一緒)
それと、
>>465も言ってるように入出力の先は別にregular fileである必要はないし
標準入出力の先が端末であるとも限らない
つまり、標準出力をバイナリモードにして、
uft32が表示できる端末に出せば良いんですよね。
そんなのあるんですか?
>>468 iconvにでもパイプでつなげばいいだろ。
>>468 端末にUTF-32を直接出力するのは具合が悪いと分かっていながら、
そもそもなぜUTF-32で出したいんだ?
UTF-8にでも変換して出力するstreamを作ればいいのに…
cygwinでSDLをインストールしたいので調べてみるとgccのversion3が必要と書かれいて
$ chmod 755 /usr/bin/set-gcc-default-3.sh
$ /usr/bin/set-gcc-default-3.sh
を実行したらバージョンダウンできるみたいなのですが、実行したら
ABC@ABC-PC ~
$ chmod 755 /usr/bin/set-gcc-default-3.sh
chmod: `/usr/bin/set-gcc-default-3.sh' にアクセスできません: No such file or directory
と返されたのでset-gcc-default-3.shでググってみたのですが一つも見つかりませんでした。
cygwinのsetup.exeから何をインストールすればset-gcc-default-3.shをダウンロードできますか?
SDLでなにやりたいのけ
>>473 そんな馬鹿なと思ったが、SDL-1.2.15のconfigureスクリプト見た感じでは
以下のようなことをやっているんだな
case "$host" in
*-*-cygwin*)
# We build SDL on cygwin without the UNIX emulation layer
BASE_CFLAGS="-I/usr/include/mingw -mno-cygwin"
BASE_LDFLAGS="-mno-cygwin"
;;
-mno-cygwinってのはCygwin用のgccにMinGWターゲットのクロスコンパイルを
簡易的に行わせるための今は亡きスイッチだ
だからGCC3とかいう話が出るんだと思うが、Cygwinターゲットではなく
MinGWターゲットなんだから、Cygwinでビルドする意味はない
それでもCygwinからMinGWターゲットでコンパイルするのであれば、
今はLinuxからと同じやり方でクロスコンパイルするのが正しい作法
つまり、ちゃんとMinGW系のクロスコンパイラツールセットを入れて、
./configure --host=i686-w64-mingw32 --prefix=/usr/i686-w64-mingw32/sys-root/mingw
とかやる
Linuxでビルドしたほうがずっと速いし、デバグをしたいならクロスじゃなく
MinGWネイティブでビルドしたほうが便利で、Cygwinからビルドするメリット無いけどな
>>471 UTF-32で出力しなければプログラム内部で変換しなければならないからです。
>>472 cp-932以外は文字化けするのでuft-8も無駄です。
iconvが初めから入ってないのでできません。
cygwinのデフォのターミナル使ってないの?
UTF-32は内部コードとして使うだけだよ
マジレスすると
libiconv.aがTDM-GCCに入ってないので、
自己コンパイルするしかないようなので諦めました。
それなのでmsysにあるiconv.exeを使って変換します。
でもまだバイナリで標準出力に出力する方法が分らないので
試してません。
> 自己コンパイルするしかないようなので諦めました。
ソフトのコンパイル一つできないのに開発しようとしてんのか
むりだろ、それは
これができませんって言いたいだけの人でしょ
>でもまだバイナリで標準出力に出力する方法が分らないので
釣りだろ。
基本的にテキストモードで出力しないと駄目なはずだから
するとバイナリをテキストモードで出力するのと同じ変換を施さなければいけないわけですよ。
標準出力にはバイナリで出力できるし
そうでなければnetpbmやsoxやlameやx264みたいなソフトウェアが成り立たない
テキストモードというのは入出力にCランタイムが手を加えるということで
OSのレベルではテキストモードなんてものは存在しないんだから
「バイナリモードでないと駄目」なケースはたくさんあるが
「テキストモードでないと駄目」なケースは存在しないよ
MinGW環境の gcc でコンパイルするとき、コンパイラはヘッダファイルをどこから探すのでしょうか?
また、そのヘッダを取り込んだとき、その実体(ソースやオブジェクトなど)はどこにありますか?
取り込むヘッダは"C:\MinGW\include"以下からでしょうか?でも "C:\MinGW\mingw32\include"にもヘッダファイルが並んでいるのでどちらから取り込んでいるのかわかりません。
環境:
OS:WindowsXP sp3 32bit
ユーザ環境変数:PATH : C:\MinGW\bin;%PATH%
ディレクトリ構成:
C:\MinGW\
>>488 gcc -vでコンパイルするとインクルードのサーチパス一覧が表示される
実際にどれがインクルードされているかは-Eオプションの出力を見れば分かる
リンクされるオブジェクトとかライブラリを表示するには"-Wl,--verbose"オプション
>>489 "-Wl,--verbose"オプションで stdio.h をインクルードしたソースをコンパイルしたら
attempt to open c:/../crt2.o succeeded
attempt to open c:/../crtbegin.o succeeded
...
attempt to open c:/.../libmsvcrt.a succeeded
attempt to open c:/.../crtend.o succeeded
のように出力されたんですが、これらが stdio.h の実体と考えても問題ないでしょうか?
>>488 C:\MinGW\include と C:\MinGW\mingw32\include の中になるものは完全に同じもの
何らかの互換性を保つ為に殘っていると思われる
>>490 実体って何だ?とりあえず
objdump.exe -p a.exe
ってやってみ
何か分かると思うよ
>>490 だからインクルードは-Eオプションだって言ってるでしょ
>gcc -E hoge.c | grep ^#
まだWindowsXPを使っているのか…
この人、DLLとか分からなさそう
>>491 >>492 ありがとうございます
私の環境では stdio.h は c:\MinGW\include から取り込まれて、ライブラリは msvcrt.dll がリンクされるようです
もやもやが晴れた気分です
>>493 4月までは・・・
-print-search-dirs コンパイラのサーチパスにあるディレクトリを表示する
そのオプションの表示、パスが長すぎると途中で省略されてよくわからんかったです。。
はあ
なんかスマンかった
cygwinでgcc4のパッケージが必要みたいだけど一覧にgcc4がないんだけどどういうこと?
デフォが4ですよ
mingwでXMLライブラリ使いたくて一覧から選んでインストールしたんだけど
cygwinのincludeの方にあって
mingwの方にないのでビルドできなかった
教えてエロい人
今度はパッケージの抜けでいちゃもん?
504 :
デフォルトの名無しさん:2014/01/25(土) 07:57:07.36
>>502 MinGW”で”ライブラリ使いたいならMinGWで環境構築してコンパイル&インストールしよう
文章を見たところCygwinのパッケージをインストールしただけに見える
CygwinはUNIXの完全互換を目指したものなので、MinGWとかなり差がある
CygwinとMinGWのヘッダファイルを混ぜて運用するのはやめよう
Cygwinで、-mno-cygwinフラグを使えるのはGCC3までです。
現在はMinGW環境とCygwin環境は別個で用意するべきです
505 :
デフォルトの名無しさん:2014/01/25(土) 08:02:10.78
てかこいつもしかして前からWinXPとかいうボロOS使ってくだらん質問してるやつか
先にLinuxを仮想で使って勉強したほうがええんとちゃうの?
>>504 thx
505は別人に因縁やめてもらえませんかね
>>506 あっ・・・(察し)
504も505も俺だけどな
508 :
デフォルトの名無しさん:2014/01/25(土) 17:05:38.35
>>507 ゴミwwwwwwwwwwww
>>506 ゴミwwwwwwwwwwwwwwwwwwww
ゴミンゴwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
508 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
あぼーんアピ寒すぎんよ〜
MinGWからssh -XCが動く環境って作れますか?
もしできるならやり方を教えてください。
みんtty
windowsは文字コードがcp932で使いにくいので、
linuxにOSを換えることにします。
iconv入れてUTF-8で使うのがデフォだと思ってたんだけど
minttyとかputtyとか
>>461 標準ライブラリの関数を呼んだら落ちるのなら
t t p : / / tehsausage.com/clang-mingw-gcc-4-7
の真似してソースをいじってからビルドしたら動くと思う
517 :
511:2014/02/02(日) 13:17:24.75
iconvなんてものがあるのか!!
ありがとう。ググってきます!!!
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.2/../../../../x86_64-w64-mingw3
2/bin/ld.exe: cannot find -lcomctl32
C:\Users\katahiromz>gcc --version
gcc (x86_64-posix-seh, Built by MinGW-W64 project) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
ぜんぜんクロスじゃないじゃないか!!! 責任者出て来い!!!
519 :
片山博文MZ無能 ◆T6xkBnTXz7B0 :2014/02/02(日) 15:47:51.12
あれこれ試しているけど、64ビット環境でTDM-GCC-32を試すと失敗する。
C:\Users\katahiromz\XWordGiver>g++ --version
g++ (tdm-2) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
G__~1.EXE: error: unrecognized command line option '-municode'
There is NO warranty
>ぜんぜんクロスじゃないじゃないか!!! 責任者出て来い!!!
基地すぎ。自分でコンパイラ開発しろよ
>>516 修正してビルドしたら実行時エラーが出なくなった
呼出規約が変わってたのか
ありがとうございました
523 :
デフォルトの名無しさん:2014/02/06(木) 20:49:00.17
TDM gccサイトに64bit版ではクロスプラットフォーム開発ができないと
書いてあったような気がするが。
4.8.1でも、まだ32bit版使ってた方が無難そう。
clang(mingw,gcc)で<random>使おうとしたらめっちゃエラー出た
__builtin_ia32***の類いが無いとか
とりあえずgccのx86intrin.h中の関連する#includeを無視する様にしてビルド通したけど、これで良いんだろうか?
>>524 Clang3.5+Gcc4.9だとそうなるのか
まだ、両方正式版じゃないからな
>>525 clangは3.4、gccは4.8.1だったわ
新しいのに期待する
mingwはTDM版に移行するかな…
clangのthread modelもposixみたいだし
528 :
513:2014/02/12(水) 14:16:59.74
linuxにしてみたけど普通にユニコードが表示されると思ったら
使えなかった。
なんのためのuft-8なのか問い詰めてみたい。
普通に使える
CUIでのはなしだけど・・・
もちろん普通に使える
つうか表示されてんのに使えないとはどういう事なんだ?
Kい四角に文字化けするだろ普通。
君には無理なんじゃね?
なにもしらないんだな。
同情するよ。
>>513 Cygwin や Linux は、いろんなエンコーディング (ロケール) が設定できて、最近のデフォルトが utf-8 ってだけ。
だから、変なインストールや設定をしてしまうと utf-8 でも文字化けする。直し方はディストリによっていくらか異な
るので、「linux ロケール」でググるしか (Cygwin や Linux などの Unix 系は、特に CUI では Windows にはない「事前
に知っておくべきこと」がかなり多いから、使い始めは入門書か参考書とコマンドリファレンス (どのコマンド名で何が
できるか、が一覧されている程度のもの。詳細は man コマンド名で調べられるが、そのコマンド名自体を探し出すの
が大変なので) を一冊ずつ手元に置いておくべき。あと、CUI だとマニュアルが日本語化されていないコマンドもけっ
こうあるので、それなりの英語力も必要)。
536 :
535:2014/02/12(水) 19:57:23.20
Linuxと一言で言ってもいろんなデストリビューションがあるからなあ
いまじゃデフォルトのローケルは大抵UTF-8になってるけど、
端末アプリに設定してあるデフォルトのフォントが日本語に対応してなきゃ
表示されなかったりするだろうな
「Linuxにしてみたけどユニコードが表示されなかった」
何をやってダメだったのかあまりにも情報不足過ぎてワラウ
端末エミュレータの設定だけの問題だったりして。
540 :
513:2014/02/14(金) 08:32:17.34
俺ってXとか立ち上げないでCUIで済ましたい人じゃないですか?
fbterm?端末エミュレーターだよね。
俺ってデフォルトの状態で日本語表示したい人じゃないですか?
linuxにはできないってことですよね。
へ? できるけど?
542 :
513:2014/02/14(金) 11:50:50.26
端末に表示される文字はBIOSのプログラムだから
英語しか表示できないってことですか?
フレームバッファコンソールでぐぐれ
あとはLinux板ででも聞け
>>542 素の端末は英語しか表示出来ないよ
日本語を表示させる事も出来るけどXなりGUIで端末エミュレータたちあげる方が簡単だと思うよ
それかWindows上の日本語表示できる端末エミュレータからLinuxにログインするか
545 :
513:2014/02/14(金) 13:17:30.11
一言でいうと端末の上に膜のようなものを掛けて表示するということですなwww
フレームバッファにウィンドウを書けばウィンドウシステムになるし、
文字を書けば端末になるってだけのこと
端末の上に膜を掛けるっていうのは全然違う
>>540 linux には、じゃなく、IBM-PC マシンには。昔のPC98 とか、日本語テキストモードがデフォルトなマシンで
linux やれば、素の CUI でもデフォルトで日本語表示できるはずだよ。PC98 の場合は SJIS オンリーだけど。
IBM-PC マシンは元々英語圏用仕様だから、ASCII 文字用のテキストモードしかデフォルトでは用意されてない。
linux を含む Unix 系は元々テキストモード用の OS だから、素の CUI はマシンのテキストモードをそのまま使う。
現状、linux で素の CUI を使う人は、英語ロケール (LANG=C) での利用が圧倒的に普通だから、将来的にも素
の CUI のデフォルトが utf8 になることはまず無いと思うよ (フレームバッファ経由だと、グラボドライバーがバグっ
た時に素の CUI の方も真っ黒になって使えなくなることが多い。暗中模索でフレームバッファ利用ターミナルを終
了させればたいていは ASCII だけなら表示できるように戻せる等、LANG=C の方がいろいろ安全)。
548 :
デフォルトの名無しさん:2014/02/14(金) 22:02:08.61
Linuxで Alt + Ctrl + F1押すとCUIモードになるが
あれがフレームバッファコンソールなんだろうな
スレ違い
linuxのコンソールで漢字を出すならkon使うんじゃないの?
最近のlinuxディストリビューションだと、起動即Xになるみたいだけど
konって何十年前の話しだよw
今はXが簡単に起動するから素のコンソールで日本語表示なんてしない
Xは環境次第で動作が不安定になりやすいから俺はランレベルは基本3で起動してるな
グラフィカル環境が必要な時だけstartx
しかしサーバ用のはずのCentOSですら標準インスコだと最初のランレベルが5ってのは疑問に感じるんだが
デスクトップ用途の需要ってそこまで伸びてるのか・・・
InelのCPU内蔵GPUとか、GPUなくてもSVGA(だっけ?)のX環境が安定してるからだろうね
サーバ用途でもやっぱり複数ウィンドウ開いて作業する方が便利だし
並列作業程度ならCtrl+Alt+F2〜の方で大体足りちまうけどなあ
コピペ機能を使いたいとかGUI依存の管理ツールを使ってるってなら分かるが
サーバ用途でSSHも使わず端末の前で直接GUI環境で長時間ってのはどうにもピンと来ない
学生がお勉強でやってるならともかく、エラーや通知をLANG=Cで扱うのは管理者なら必須スキルだしな
>>554 学生を使い捨てするならX使えた方がいい。
お前みたいな高給取りのベテラン育てるのはもはや非合理的なんだよ。
むしろマウス使わないでやるのがかっこいいからだろ、
文字を緑にしたら完全なハッカーなんだけど
どうやって文字を緑にするのかわからん。
ディスプレイのあるコンピュータいじってる時点で三流だよ。
むしろアプリの出力文字コードは英語のままで、
日本語も表示できてほしいな。
日本語表示できるようにすると
アプリの出力とかまで日本語化されるからな。
LC_ALL=en_US.UTF-8 で出来るんじゃないか
>>556 確かに緑文字はかっこいい。みづらいけどな
Windowsのコマンドプロンプトなら
c:\> color 02
で出来る
サーバーを直接操作するって考えがもう既にダサい
>>560 昔のグリーンモニタの緑は単純な緑色じゃなくて、やや黄色側に寄った緑だからな。
あと残効性のある発光体使ってて、ちらつきが押さえられてる。
目に優しいってことで緑色だったんだけど、白人にはもっと赤っぽいアンバー色の方が
いいってことでIBMのモニタはアンバー色になってたな。
というかlinuxはサーバーようとにもデスクトップ環境にも
両方使える万能OSだからな。
それどころか、組み込みにも使えるぜ。
ドライバーは事実上変な方言のあるCでしか書けないが、アプリならC++で書けるし。
カーネルの移植性や改修性でなくディストリ含みの話だろう
ビデオドライバの供給はlinuxでは相性の出る部分だからマザー/グラボとディストリの選定は必須
デスクトップ運用だとIntel+UbuntuかLinux保証の筐体+指定ディストリが一番トラブルが少ないかな
>>562 目にいいってのは単なるいいわけだと思う。
単に暗くても視感度の高い緑を使っただけだろう
567 :
デフォルトの名無しさん:2014/02/20(木) 20:32:23.04
color 0e
デスクトップLinuxはAMDがいまやスタンダードだろ?
文脈的にマザーの話じゃないか?
AMDはOCだけには滅法強いからな
でも速度で一世代前
動作周波数4G超えしてるのに?
IPCが低いんだよ
ストールが多すぎてお話にならない
機械設計に任せてIntelみたいに苦労しても手で最適化しないからだ
ちなみにHaswellなんてアンコア部を除いたらびっくりするほどトランジスタ数が少ないぞ
それであの速度だからな
mingw-getのソースって公開されてるの?
mingw64-getを作ってほしいです。
distro = distribution
577 :
片山博文MZジェバンニ ◆T6xkBnTXz7B0 :2014/03/07(金) 10:37:00.91
GUI付きのデバッガでデバッギングしたいが、何かいいものありませんか?
やっぱDev-C++っすよね
579 :
デフォルトの名無しさん:2014/03/08(土) 13:19:54.37
Emacs + gdb でしょ
cgdbでしょ
4.9、fortranとopenmp有効にしてビルドするとf951がセグメントエラーで止まるんだが
4.8では問題ないけど4.9だけ去年の9月からずっと直ってない、これ開発者はテストし
てんのかな
582 :
デフォルトの名無しさん:2014/03/09(日) 10:08:53.76
>>581 動いてないならしてないだろう
そーゆーのいいから、バグレポート!
>>581 どこ作製の4.9なんだ? 自前でビルドした4.9?
テスト宜しくなんだろ
>>582-583 トランクから引っ張ってきた4.9@mingw-x86_64-w64自前ビルドだす
去年の9月までは普通にビルド出来たんだけど、出来なくなったのでバグレポート調べたら
全く同じ症状のレポートが上がってたのでそれのfix待ってたんだけど、この前調べたらfix
済みになってたので喜んでビルド、そしたら
>>581のバグ
あそこって登録しなくちゃレポートだせないのかな。最新リリースの4.8.2なら問題ないから、
多分4.9のバグだと思うんだけどなあ
スカトロMinGWはasyncにまだ対応してなくて萎えた
TDM-MinGWかMinGW Buildsがいいのか?
>>585 >>584を見習って自前ビルド!
たまには自前ビルドしてみたんだが(いまならgcc4.9かな)、やり方わからん
>>584 手順が載ったサイト教えて
>>586 Linux From Scratchの日本語版見れば必要なライブラリとか全部揃うよ
linuxとあるけど、windows環境---多分winだとmsysとかcygwinだろうけどそういう環境に置き換えて
参考にしても多分うまくいくと思う
問題はconfigureで、そこだと必要最低限の事しか書いてない。
分からなかったら今使ってるgccを-vで呼び出してそのオプションを真似すればいいんじゃないかな。
configureで蹴られたオプションは外していく。言語は、最初cとc++のみにしてビルドするとか。
sjlj-exceptionsの選択は、c++を主戦場にしてる人には重要かも。これ有効にするべきか無効にする
べきかハッキリお奨め出来ないんだよね。
そんなもんかなあ。
やってみれば分かるけど簡単よ、時間も今時のPCなら30分ぐらいで終わるしね
MinGW BuildsのバイナリはDLLにかなりの部分を任せているせいか、一番小さくなるな
だからコマンドはほとんどこれで作っている
DistroもTDMもEXE大きいだろ
distro = distribution
前から存在は知ってたけど、msys2いいね、パッケージの更新頻度が速い
自前でライブラリ揃える必要ないってくらい充実してる、しかも64bitも配布してるし
問題はwinptyが使えないって事ぐらいか、これさえなんとかねれば乗り換えられるんだけどなあ
mingw-get-setupだとstd::to_stringが使えなかった。
>>590 winptyはソースあるんだから(ソースの修正必要かもしれないが)、
msys2でビルドすれば良いんじゃないか
593 :
片山博文MZジェバンニ ◆T6xkBnTXz7B0 :2014/03/27(木) 18:47:06.88 ID:pkdNwHUQ
MinGW-Buildsで_tcsrchrがリンク時エラーで使えなかった
linuxへのアクセスがしたくて今日初めて入れてみたんだけど、
日本語が化けるのでiconv入れたい。。。
普通にコンパイルすれば問題なく動くの?
なんかググると動くってのと入れても化けるからパッチ当てろってのが混在してるんだけど、
どれも微妙に古い記事だからどこで最新情報が貰えるのか教えて。
cmd使わずにminttyやらターミナルエミュレータ使いなさい
コマンドプロンプトでも chcp 65001 ってすればutf-8は表示できるけどな
chcp 65001した後、日本語ファイル名のあるフォルダでdirしたら
The system cannot write to the specified device.とか言われて
表示できないんだが・・・
cygwinならiconvはディフォルトじゃなかったか?
Windows7 の cmd.exe は、chcp 65001 でもラスタフォントでは日本語表示できなかったんだけど、今確認したらラスタ
フォントで普通に日本語も表示できてる (て言うか、ラスタフォント以外に日本語対応フォントは一覧されず)。
Windows7 のアップデートで出来るようになった? それとも自分が何かしたのか...
今までこの問題で苦労した人が数知れないから、ほかの人たちも表示できるようになってるか是非知りたい (字体が
かなり汚ないので、自分が何かして Unicode 対応ラスタフォントが入った可能性の方が高いかも)。
600 :
599:2014/04/08(火) 16:31:41.27 ID:xaBD9l1I
いや、やはりダメだった。Truetype フォントで dir して文字化けのときにラスタフォントに切り替えると日本語も表示される
けど、その状態でもういちど dir すると
>>597 と同じメッセージで拒否られる。
そりゃwindowsのフォルダ名はSJISだからなあ
NTFSのパスはUTF-16だよね。
FATはSJISだったのかな?
LFNはUnicode
SFNはOEMコードページ
>>594 どういう環境なのか分からんけど、msys使ってそれなりの設定すればちゃんと日本語表示
されるじゃん、それともメッセージを日本語表示したいんかな?
gccのバイナリgrepすれば分かるけど、configureで指定したインストールディレクトリから辿
って言語ファイル読みにいってるから、自分でビルドするかビルドされた環境にgcc(というか
mingw)を配置すれば表示されるんだけど
そういう話じゃないのかな?ってか今時配布してるgccは大抵日本語対応してるから
--input-charset=cp932 --exec-charset=cp932 で表示されそうなんだけどなあ
というかgcc -vでconfigure見れば…と思ったけど、iconvの指定しなくてもそこら辺自動的に
見てるんだっけか
>>605 すみません、肝心なところが抜けてた気がします。
入れたのはMinGWとminttyです。
linuxとの通信で日本語が文字化けします。
linuxそのものは普段GUIしか使わないライトユーザーですが、
リモートでGUI使ってる限りは日本語表示に問題ありません。
mingw 日本語 とかでググってたらiconv入れようって出てきて、
それで色々調べていたところです。
昨日とりあえずmingw-get libiconvってしてみました。
まだ何がどう変わったのかは試せてません。
>>606 Linuxとの通信って何かね?minttyからsshでLinuxにログインしたってこと?
それなら、minttyのOptionsダイアログのTextのとこで
Fontを日本語表示できるフォントに、
Localeをja_JPに、Character setをUTF-8に設定してある?
なんか、プログラムの話じないスレだな
MinGW/Cygwinは環境だからな
>>592 やってみた。
msys2-devが必要、なおかつconfigureとmain.ccの修正が必要だったけど、ビルド成功
configureとかのi686-pc-をx86_64-pcに変更
main.cc 225行目を#if 1に変更
mintty使ってる時console xxでscanfや対話形式のアプリがちゃんと表示されるようになる
幸せです
minGWではmemcpy_sとかの_s付きセキュア系関数が使えないみたいなんですが
(string.hに定義がない)そういうものですか?
mingw-get-setup.exeからインストールしました
>>611 〜_s系の関数は大抵VC++の拡張だからC++の公式な仕様ではないよ
MinGWのコンパイラは当然GCCだから、〜_s系の関数の元になった関数を探す必要がある
試さずに言うとmemcpy_sはC11なんだし-std=c11とか付けるんじゃね
mingw-w64にはあるみたい
sec_api/string_s.h
試してないけど
ls -laF
実行して出力される内容を、ファイルのサイズでソートしたいのですが、
ls -laF | sort ???
sort の後ろにどういうオプション指定したら良いのか教えてください。
ls -laFS、ls -laFSrじゃあかんの?
>>616 ありがとうございます。
Sなんてオプションあるの知らなかったです。昔からありましたか?
どかな?
この世代のGNU lsにはあった
GNU fileutils 4.1 18 June 2002 LS(1)
>>618 たびたび有難うございます。参考になりました。10年ぶりくらいに
cygwinインストールしたので浦島太郎状態です。また教えてください。
620 :
611:2014/04/22(火) 23:50:44.24 ID:X5cWpU9U
亀レスすみません
環境やオプションは変えられないので置き換えて対処しました
>>612,613,614さんありがとう
intを64bitにするほうほう教えてください。
これだけ待っても回答が無いということは誰も回答能力がないという
ことですね。経験上。
int a = 123;
long long b = (long long)a;
printf("a value:%d size:%d\n", a, sizeof(a));
printf("b value:%lld size:%d\n", b, sizeof(b));
は?
うわぁ・・・
typedef
int は
修飾だけじゃなくセパレータ入りの型名も有ったりするからなぁ
630 :
デフォルトの名無しさん:2014/04/26(土) 17:14:12.91 ID:fIjhv7f7
4.9!
パーミッションに勝てるのはチョキミッション
-m64bit-intのようなオプションないですか?
>>633 -march=x86-64
あたりかと。
x86_64ってintは32bitなんだが・・・
4.9がまだでてない。。。
おとなしく待ってるのが吉
4.8.2をビルドした環境があれば4.9.0は特に何もしなくてもビルドできたよ。
だからそのうち出てくると思う。
>>639 Clangへ移行でGCCはやる気なしってなっているんじゃないか
clangではcygwin1.dllは作れないんではないかと
mingw-w64-install.exeを実行した後のインストールの設定がよくわからないので
どれを選べばいいのか教えてください。
Version 4.9.0 4.8.1 4.8.2 4.8.3
Architecture i686 x86_64
Threads posix win32
Exception dwarf sjlj
Buid revision 1 0
これが選択肢です。
分からないんだったらディフォルトでいいんじゃね?
CPUがx86_64なのでデフォルトじゃダメです。
ThreadsとExceptionとBuild revisionの意味
しってますか?
分かっているんだったら他人に聞く必要ないんじゃね?w
下の3つが分からないんですけど・・・・
>>648 threadについて読んでもわからないんですけど
6の人はどっちを選んでも結果は同じかをきいているんじゃないですか?
8の人はthreadの設定はstd::threadのスレッドモデルを決めることと
threadをwin32にするとstd::threadが使えないって答えてるじゃないですか?
9の人はwin32を選んだらwin32 threadsが何に使われるかきいてるじゃないですか?
7の人はwin32 threadにするとランタイムがwin32用になるが
win32apiを使ってはいけないってかいてるじゃないですか?
結局win32にするとthreadが使えなくなるってことですか?
インストール先なんですけどprogram files 以下にインストールでいいですか?
>>652 ありがとうがいます。
posixとC:/以下にしてみます。
インストールできました。
ついでにmsysとmittyとvimもインストールしました。
でもユーザー名がwindowsのユーザー名の変更で変更する前のユーザー名になってるんですけど
ユーザー名を変える方法ないですか?
自己解決しました
msys.batにset USERNAME=angってやればできました。
>>650 誤解してるようだけど、ここのthreadモデルとかexceptionの指定は
mingw-gccでビルドされるプログラムへの指定じゃなくて、gcc自身が
どのモデルでビルドされるかの指定だよ。
exceptionは以前のgccではsjljがデフォだったが、最近のバージョンではdwarfが
デフォになってる。
>>660 nasm-2.11.05.tar.bz2
yasm-1.2.0.tar.gz
gpac-0.5.0.tar.gz
last_x264.tar.bz2
msysって今メンテされてんの?あれperlとか古くてビルド出来ないヤツもあった気がする
msys2だとpacmanでほとんどのライブラリインストール出来るから初心者にはお勧めなんだけどね
パラレルメイクが止まらない、configureがmsysに比べ若干速い、x64とx86から環境をチョイスできると利点が多い
ただなんかパスの認識がおかしい時がある、bison使うヤツに多いからそのせいかな、とは思ってるんだけど
>>660ってx264のビルドしようとしてんのか。gpacは確かパッチ当てないと、--enable-staticのスイッチ指定しても
staticライブラリ作成されなかったな。あと、やる気あるならffmpegとffms2とgperfも追加、リンクで苦労するけど
今日初めてmsys2使った
お勧めですぞ
しかしMinGW本家とMinGW-w64と別れちゃって開発リソースが分散してる気がする
それは、もう64以外はいらねってことですね、わかります。
meadowも終わってるようだし、もはやmsys系には未練なしかな。
cygwinで統一、と思っても、windows8で謎のforkエラーが頻発。
cygwin 64bit版のXはウインドウリサイズするとバーだけになるバグがあるしなぁ。
決め手がないわいな。
vimがバックスペースでカーソルが戻るだけで
文字が削除できませんがどうしたらいいのでしょうか。
>>667 それはよみました。
途中までですけど。
linuxではバックスペースでも文字が消えるんですよ。
調べたけどset backspaceのようなものではないという結論に達しました。
俺が使ってるlinuxはバックスペースで文字は消えないな
端末エミュレータの設定で、バックスペースキーにDELコードが割り当てられているんじゃね?
俺様のvimは生端末で動いている。
>>666 :h <BS>
:h i_<BS>
:h i_backspacing
ノーマルモードではxで一文字消去できるのは大丈夫だよな?
673 :
667:2014/06/23(月) 15:32:29.12 ID:9fcCBkTP
>>668 バックスペースキーは環境によって挙動が異なるので、vi 系本来の削除キーマッピングを覚えた方が
いいんじゃなイカ、てふことっす。
>>668 set nocompatible してみた?
ノーマルモードでのバックスペースキーの挙動のことだと思うのでnm <BS> xで解決しそう
インサートモードの話なんですけど。
インストールする時に表示されるプログレスバー3本のうち
一番下のDiskといのは何を指すんでしょうか?
記憶媒体の容量
HDD買い替えて新しくOS入れ直したんだが
MinGW動かねぇ・・・orz
Eドライブにアクセスするとか、不具合があるとかで
全く思い出せん・・・
最近、仕事用のPC(win8)にmingw+msys入れたけど、インストーラーが変わりすぎててなんかおかしかったな。
mountとかロクにしてくれてなかったような。
結局、cygwinに一本化したわ。