Cygwin + MinGW + GCC 相談室 Part 3
1 :
デフォルトの名無しさん :
2007/04/30(月) 23:52:47
乙
3 :
デフォルトの名無しさん :2007/05/01(火) 01:25:27
____
/ \ ∧__T _ ,,,r -r-T‐-、
/ \─ 。r *o:*::f:::r:::..l
__,-,,-、 ___'/ /\ /\\::::::::*o;;;ro ot_f_ヽ丿
__/| | l |ヾ-"~ | (_人) | -v--v-'''''''"V"~~┴
l⌒ 二 -l ..uUU""l-- \ /
└ l´ (,,,, ./., - イ /
.ト | { |,.ィ'''フ''''=、r'"~ i,, `ヽr''"`ヽ、 ヽ、
ヽ、i / .∠ / / .| ノ" )=、 ̄ ̄,,..ィ'"´i ヽ、
/ y'_/ / / / | ノ ´ ̄ `Y"´ i
.ゝ-+-::i⌒ヽ / '' ,.| .__,,.. レ _,,,,、 j、、
.__/::| | i
>>1 / r´ } ィ'''i" J ,,.ィ'"~ `'ヲ''ー-、ノ、 ヽ、
/ /:| | i ,,ノ / ,,l ,人 ,,l、 ノt ) `ヽヽ
i ::| | ) .| /, ,;' .人 /"``ゝ、 人 ,,イ jt、 ヽ i
/i ::し// |''´ 、 ` _ノ /、 `ー--;::-ニ"_,ゝ=---‐''" ,ノ ヽ、 ヽ t、
::| (( ヾ、ノ, .__ノ´ ヽ、 r 、 f" `i´ ̄` Y `ヽ / ゝ-,ヲ''' )
スレタイを修正したのは良かったと思うよ
Apple版GCCのスレは全然関連してないと思うが
枯れ木も山の賑わいと申しまして・・・ GCCの話すらしてないな、あそこは。
>>1 乙
前スレはタイトル修正せずに立ててしまって正直スマンカッタ。
質問です。 msys用のmanコマンドって落ちてませんか?
実数x,yの値をキーボードから入力し,足し算,引き算,掛け算,割り算の結果を同時に出力できるプログラムを作成する の作成方法教えて下さーいm(_ _)m
宿題は(略
UNIX板Cygwinスレとのマルチかよ 何故こいつはcygwinスレで質問するのか そもそもなぜunix板にcygwinスレがあるのか いくつもの謎を乗り越えて このスレは育っていくのだな
>>11 エディタでソース書いてコンパイラに食わせる。
cygwin はどっちかっつーと Linux 板の領分な気がするんだけど、 Linux 板には 1 つもスレないのな。
>>16 cygwinはunixでもlinuxでもないんだからなくてもおかしくはないだろ。
bashを始めとした擬似Unix環境なんだからあってもおかしくはないが。
本家の第一声がこれだからな。 Cygwin is a Linux-like environment for Windows. まあ、Windows 板にあるのがベストだと思うが、1 つしかスレないのな。
19 :
17 :2007/05/14(月) 10:54:22
そうか、じゃ、「擬似Linux環境」に訂正w
>>18 2つあったら重複で削除だろうに、「1つしか」って何が不満だ?
Unix 板には cygwin 関連スレが 4 つあるからね。 一番 Unix 板が cygwin に関心があるのかね。
>21 つーか、Linux板ではLinuxじゃないから板違いと言われそうだし Win板はレベル低いヤツはとことん低いからな Cygwinとは関連が微妙に薄いながらも 何気に一番まともにスレを進行できるのがUnix板ってことなんじゃね
一応関連スレはひととおりみてるけど ここが一番会話が充実してる気がする
>>18 もともと UNIX-like environment って言ってて、
いつの頃からか linux をターゲットに路線変更して
linux-like environment を標榜するようになった
んだったと記憶してるが俺の記憶は定かではない。
>>21 坊やが気まぐれで立てた糞スレが何年も消えずに残ってるだけ
あそこは過疎板だから数年放置しても落ちないんだな
なるほど。
>>24 しかし Linux をターゲットってのもおかしな話なんだよねぇ…
cygwin が kernel 含むわけでもないし…
POSIX and GNU environment って感じ?
まあ、-like だからいいんじゃね?
MinGWでコンパイルされたオープンソースなアプリがあるのだけど これって弄ればVC8でコンパイル出来るようになるのん? 素人の俺にもわかるように教えて
>>29 できるかもしれんし、できないかもしれん。WinAPI以外のライブラリ(例えばsocket)を特に使っていないのなら、多分大丈夫。
使っている場合は、類似ライブラリ(上記のようにsocketならばWinSock)を使用するように修正する必要がある。
C/C++以外で書かれてたりしても無理だな
Ada とかか。
サンクス 出来るかどうかはわからないけどやってみるよ
ホンマや! 何か趣旨替えでもしたんだろうか。
36 :
デフォルトの名無しさん :2007/05/16(水) 11:27:30
Windows XPで MinGW + MSYS で開発をしています。 コマンドプロンプトからMSYSのsh.exeを立ち上げて使っています。 この環境で、Cのプログラムから fprintf(stderr,"hoge\n"); とすると、 ちゃんと出力されません。 ちなみにMSYSのrvxtを普通に立ち上げて使えば、ちゃんと出力されます。 どうすれば出力されるようになりますでしょうか? もっと適したスレがあったらすみません。
>>36 sh-2.04$ cat test.c
#include <stdio.h>
int main(int argc, char **argv) { fprintf(stderr, "hoge\n"); }
sh-2.04$ gcc -o test.exe test.c
sh-2.04$ test
sh-2.04$ cat test2.c
#include <stdio.h>
int main(int argc, char **argv) { fprintf(stderr, "hoge\n"); return 0; }
sh-2.04$ gcc -o test2.exe test2.c
sh-2.04$ test2
hoge
sh-2.04$
38 :
35 :2007/05/17(木) 10:15:46
>>36 ありがとうございます。おかげさまで落ち着きが出て原因がわかりました。
「return 0」ではなくコンパイルオプションに「-mwindows」があることが原因でした。
コンパイルオプションに「-mconsole」をつけることで解決しました。
WindowsXPにMingw+MSYSでプログラミングしています。 Mesa-6.5.3とglut-3.7.6をmakeし、/mingw/include /mingw/libに ヘッダファイルとライブラリをコピーし次のサンプルプログラム をコンパイルしたところlinkerエラーになってしまいます。 #include <GL/glut.h> void display(void) { } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutCreateWindow(argv[0]); glutDisplayFunc(display); glutMainLoop(); return 0; } $ gcc -o test.exe test.c -lglut32 -lopengl32 -L/mingw/lib C:/(hoge)/Temp/ccG2baaa.o:test.c:(.text+0x1c): undefined reference to `__glutInitWithExit' C:/(hoge)/Temp/ccG2baaa.o:test.c:(.text+0x37): undefined reference to `__glutCreateWindowWithExit' C:/(hoge)/Temp/ccG2baaa.o:test.c:(.text+0x52): undefined reference to `__glutCreateMenuWithExit' C:/(hoge)/Temp/ccG2baaa.o:test.c:(.text+0xae): undefined reference to `glutDisplayFunc' C:/(hoge)/Temp/ccG2baaa.o:test.c:(.text+0xb3): undefined reference to `glutMainLoop' collect2: ld returned 1 exit status リンカーがlibglut32.aを見つけられてないような気がしるのですが、 ライブラリをコピーするだけではだめなのでしょうか。
>>39 リンカは引き数の順番に意味があるから、-Lを-lより前に持ってきてみたら?
#それでダメならまた別の理由と言うことになるけど。
>40 コメントありがとうございます。 入れ替えてみましたが変わりありませんでした。 その昔触っていたFreeBSDでライブラリをコピーしたあとldconfig し忘れていたような状態に似ているのですが、 MinGW+MSYSにldconfigはないようで。
>>39 つ[nm -v /mingw/lib/libglut32.a | grep -w T | grep glutMainLoop]
43 :
39 :2007/05/17(木) 14:47:14
$ nm -v /mingw/lib/libglut32.a |grep -w T |grep glutMainLoop 00000000 T _glutMainLoop@0 $ nm -v /mingw/lib/libglut32.a |grep -w T |grep glutDisplayFunc 00000000 T _glutDisplayFunc@4 $ nm -v /mingw/lib/libglut32.a |grep -w T |grep __glutCreateMenuWithExit 00000000 T ___glutCreateMenuWithExit@8 $ nm -v /mingw/lib/libglut32.a |grep -w T |grep __glutCreateWindowWithExit 00000000 T ___glutCreateWindowWithExit@8 $ nm -v /mingw/lib/libglut32.a |grep -w T |grep __glutInitWithExit 00000000 T ___glutInitWithExit@12 一応あるみたいです。
44 :
35 :2007/05/17(木) 14:58:19
昔(2006/07/25頃)のmemoで申し訳ないですが、以下のようにしたらコンパイルできました。
---
C:\MinGW\lib には libglut32.a, libglut.a などがあるが、なぜか glut.h がない。
Windows 用の glut である,glut-3.7.6-bin.zip を入手、展開(
http://www.xmission.com/~nate/glut.htmlから )
glut32.dll を C:\WINDOWS\system32 に入れる
ming32gl.zip を google 等で探して展開し、GL ディレクトリの中身をすべて、C:\MinGW\include\GL と置き換え。
* compile
gcc -o a.out test01.c -lopengl32 -lglut32
46 :
39 :2007/05/17(木) 17:23:30
いろいろコメントいただきありがとうございます。 主たる目的がMesaをソースからコンパイルするところに ありまして、バイナリをコピーするというのではイマイチ 解決にはならなかったりします。(^_^; ところで妙なことになりました。 このパソコンにはcygwinもインストールされていまして、 $ /c/cygwin/bin/gcc -o test.exe test.c -L/mingw/lib/ -lglut32 -lopengl32 とやると、実行ファイルができウィンドが表示できました。 全然めでたくはないです。 しかし一歩前進ということで。
47 :
39 :2007/05/18(金) 10:00:29
どうも自前でコピーしたglut.hが気に入らなかったようで、 >44 のヘッダファイルと差し替えるとコンパイルできました。 根本的な原因についてはおいおい調べることにします。 >35 CygwinがRedHatに吸収されてから替わったような気がします。
cdeclとstdcallじゃないの?
久々にcygwinやってみようとデフォでインスコしてみたら、容量でかすぎワラタw
全部入れる香具師がいるとは
全部入れたら2Gくらいか
52 :
デフォルトの名無しさん :2007/05/19(土) 12:51:01
質問するスレを間違っていましたら誘導お願いします アセンブラにて .global hoge .type hoge, @function という書き方があるのですが、.type以降の意味はなんでしょうか?
>>53 誘導ありがとうございます
向こうで聞いてみます
55 :
デフォルトの名無しさん :2007/05/20(日) 19:11:45
>>53 のスレで聞きましたけど
WindowsでGAS使いたいけど、どうすればいいのでしょう?
asm文書いてコンパイルしてリンカすると以下のようにエラーになってしまいます。
ld: warning: cannot find entry symbol _mainCRTStartup; defaulting to 00401000
a.out(.text+0x21):hello.c: undefined reference to `_alloca'
a.out(.text+0x26):hello.c: undefined reference to `__main'
a.out(.text+0x32):hello.c: undefined reference to `printf'
>>55 せめてどんなプログラムを書いたか、どんなコマンドを入力したか、くらいは書こうや。
>>55 C標準ライブラリともリンクしてあげてください。
58 :
デフォルトの名無しさん :2007/05/20(日) 21:31:08
>>55-56 すみません。
@Cで以下のようなソースを書きました。
#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
AGCC(MinGW 3.4.2)で -S 付けてアセンブリのソースを出力
B出てきたアセンブリを as を使い ld を実行すると
>>55 のようなエラーでました。
以上です。
gcc -o hoge hoge.s
61 :
デフォルトの名無しさん :2007/05/20(日) 22:31:36
>>60 リンカのオプションは何も付けていません。
付けないよまずいですかね?
62 :
デフォルトの名無しさん :2007/05/21(月) 09:43:51
みんなデバッガとして何を使ってる?
syslog
だーから MinGWとは、 ゴールデンウィークが最小限であることを言い表す言葉なんだって。
VC
insight使ってる 軟弱者でスマン
gdb
fprintf Purifyplusとか使ってる金持ちおるんかいな。使い心地とか聞いてみたい。
symdeb
autoconfって必要? 一発でまともにconfigure通ったことが無い。
autotoolizeされたソフトであっても Cygwin や MinGW+MSYS で
テストされていないものが多いからそんなもんだよ…
必要なライブラリが足りてないとかだったら
>>70 が悪いだけだが…
cygwinでscanfのEOFはctrl+Dですか?
いいえ bash で CTRL+D すると EOF になります。
cshでもそうだな。 CTRL+DがEOFじゃないcygwin上のシェルは何になるの?
cmd.exe とか? 「cygwin上の」って意味が分からんから外れてるかもしれんが。
76 :
デフォルトの名無しさん :2007/06/14(木) 03:32:28
cygwinホストからlinuxをターゲットにクロスコンパイルしようと思い、 gcc-4.2.0 のソースを ~/gcc/gcc-4.2.0.tar.bz2 に落としてきて展開し、その ~/gcc/gcc-4.2.0 で $ ./configure --target=i686-pc-linux --enable-languages=c,c++ --prefix=/usr/local/gcc-4.2.0 $ make CC=gcc LANGUAGES="c c++" /home/username/gcc/gcc-4.2.0/host-i686-pc-cygwin/gcc/as: line 2: exec: -o: invalid option exec: usage: exec [-cl] [-a name] file [redirection ...] make[2]: *** [crtbegin.o] Error 1 make[1]: *** [all-gcc] Error 2 make: *** [all] Error 2 と出ました。 因みに as の中身は、 exec "$@" で、の引数は下のようでした。 -Qy -o crtbegin.o /cygdrive/c/DOCUME~1/username/LOCALS~1/Temp/ccbwsMK0.s コマンドが見当たりません。 エラーの原因が分かりません。 ググっても英語のBBS程度しか出て来ず、解決に至りません。
いまどきエミュ環境なんか使ってるなよ。 VMか、colinuxか、本物のLinuxを入れるのが一番いい。
>>76 そのasのラッパに、asの実体のパスがうまく伝わってないっぽいな。
本来なら exec 〜/as -Qy -o となるところが exec -Qy -o となっているんだろう。
cygwin上でlinuxのcrossなんてきちんと検証されてないだろ。
自力で解決できないならあきらめろ。
gcc だけじゃなくて binutils, glibc が必要
>>77 Win32 のコマンドラインアプリと、UNIX 由来のツールをパイプでつなげるときはどうするの
WINE だったら大爆笑だけど
パイプでつなげて使いたいようなWin32のコマンドラインアプリって・・・ある?
>>81 だから本来そういう用途のためのcygwinだろ。
何が悲しくてwin32でlinuxのcrossを動かさにゃならんのだ。逆ならともかく。
UNIX系のコマンドは正常のときは比較的無口で エラーのときは情報を必要十分な量だけ的確に吐くから パイプで繋げるときに有効性が出てくるんだけど Windows系のそれは無駄口が多いくせに その割に状況を正確に把握出来ないほど 決定的に不足していて使い物にならないことが多い
linuxで試しにdirと打ってみたらファイル一覧が表示された lsのエイリアスが張ってあるな
>>86 最近は、coreutilsに入ってるはず > dir
>>85 対象としてるユーザ層がそもそも違うOSだからな。
MingwのOpenMP対応まだぁ?
>>82 自分でデータ処理するための細々したツールをmingwで書いてパイプでつないでるよ。
mingwだからwin32アプリだ。
つーか、そうしたいからcygwinやらmingwやら使ってるんじゃないの?
GUIアプリ作りたきゃ、タダのvisual studio使ったほうがマシだよ。
>>90 その用途だと mingw である必然がないと思うが…
CUI でも Visual Studio 使って作ればいいんじゃね?
# cygwin で POXIS API使って作りたいとか cygwin 上の
# UNIX ライクツールと組み合せて使うとかならわかるんだが…
個人の自由にけちをつける変態スレはここですか?
公共の場でオナニーをする奴はけちつけられると思うヨー
GCJの質問もOKですか?
下記のページを見てdllを作ろうとしています。
トップページ
http://www2.atwiki.jp/ccw/pages/4.html 見ているところは下のほうの GCC - DLL の作成 のところです。
ページに書いてある通りのファイル名のファイルを作成し、中身はコピーペーストで
貼り付けました。
ページ内の gcc -c calc.c はうまくいっていると思います。
(通常のアプリで -c でコンパイルしたものをリンクすると正常動作するので)
ところが次の
dllwrap -k -def calc.def --driver-name gcc -o calc.dll calc.o
が失敗します。エラーメッセージは下記です。
D:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: Can't open base file \/cca02560.base
collect2: ld returned 1 exit status
D:\MinGW\bin\dllwrap.exe: gcc exited with status 1
原因は何でしょうか?
>>96 --driver-name gccを取ったりしたらうまくいかない?
>>96 試してみたところ同じですね。
ところで、一応解決しました。
過去にインストールした古い dllwrap がPC内に残っているのを発見したので、
それに差し替えたところ正常動作しました。
新しいものだと何か設定が必要なのか、
あるいは私のPCの環境が新しいdllwrapに悪影響を及ぼすのか、
それともdllwrapのバクなのか(可能性薄いかな)良くわからんです。
正常動作したバージョンは下記です。
DllTest> dllwrap --version
GNU D:\MinGW\bin\dllwrap.exe 2.15.94 20050118
うまくいかなかったバージョンは下記です。
DllTest> dllwrap --version
GNU D:\MinGW\bin\dllwrap.exe 2.16.91 20060119
確認したソースは下記です。
http://www.borujoa.org/upload/source/upload12756.zip
SJISコードがうごかねー。 いい加減、gccもデフォルトでSJISに対応してくれよな。。。 せめて単純追加オプションで。
dllwrapに関して質問した経緯上、引き続きdllwrapを調査していたのですが、
どうやら
http://www.mingw.org/ からリンクが貼られている
http://sourceforge.net/project/showfiles.php?group_id=2435 の
binutils-2.17.50-20060824-1.tar.gz
に問題があるようです。
おそらく、
binutils-2.17.50-20060824-1.tar.gzのdllwrapを使用すると
>>95 が再現するものと思われます。
(確認する根性のある人は従来のdllwrap.exeはバックアップしておいてください。)
原因はTMPDIRもしくはTMPもしくはTEMPが正しく設定されていない状態でコンパイルされたdllwrap
が、binutils-2.17.50-20060824-1.tar.gzに含まれているせいだと思われます。
それらが設定されていない場合、stdio.hの #define _P_tmpdir "\\" が中間ファイルの先頭に配置され、
中間ファイルの作成に支障をきたすようです。
>>95 と同じ症状で困っている方は、dllwrapのオプションに
-base-file aazz1199.base
等を追加すると正常動作するものと思われます。
以上、ご報告まで。間違いがあれば指摘お願いします。
こちらで質問するのがあっているのがわからないのですがC言語の勉強を始めたのです、 研修先がunix を使い vi gcc gdb を使っているので自宅でも似た環境をと思ってcygwinを利用しようと思い導入いたしました。 allでインストールをしてとりあえずhello c と表示させるプログラムを書きました。 ソースは下記のとおりです。 #include <stdio.h> int main(void) { printf("Hello World!\n"); return 0; } この程度なのでコンパイルエラーは起きていません。ファイル名はtest.c です。 問題点は3つありまして 1つ目 gcc test.c でコンパイルをした際に a.exeができます。a.exe で実行した際に bash: a.exe: command not foundと出てしまいます。 なぜ実行できないのでしょうか? 2つ目 gcc -o test test.c でコンパイルしてできたtest.exeをtest.exeで実行しても実行はされているようなのですが(エラー等がでていないだけの理由ですが・・・) 何も表示されず 次の入力待ちの状態になってしまいます。なぜ表示されないのでしょうか? 3つ目 以上の理由からぐぐってみたのですが解決方法がわからずcygwin上でなくウィンドウズ上のコマンドライン?で実行できるようにあったので試してみました。 gcc -mno-cygwin test.c です。これでコンパイルしたものをウィンドウズ上で実行してみたのですが1瞬ちらっと表示されて窓が消えてしまいます。 ぎりぎりプログラムとおり表示されていると確認できたのですがこれ以降このままだと困るのでしっかり表示されるようにするにはどうしたらいいのか? unixも今回初めて触って勉強中なのでおかしな言葉遣いや初心者過ぎるミスなのかもしれませんが、 ご回答のほどよろしくお願いします。 また、それぐらい調べろよ・・・と思うかもしれませんが cygwin c言語 で検索してみたのですが 質問3ぐらいの方法しか見つかりませんでしたので、検索ワードぐらいでも教えていただけれたらと思います。
102 :
101 :2007/07/07(土) 12:57:38
すみません 細かいところですが hello c でなくHello World! を表示させるでした・・・
>>101 1.
./a
2.
testという既存のコマンドが実行されている。testに関してはmanpage参照。
自作のtest.exeを動かしたいのなら./test
3.
起動したらHello, world!と出力してすぐ終了するプログラムなんだから
ウィンドウがすぐ閉じるのは当然。むしろ閉じてくれないと意図しない動作になるでしょ。
コマンドプロンプトから実行するか、return 0;の前にscanfなりgetcharなり
使えるのならgetcharなりで入力待ちを作る。
>>101 cygwinじゃなくて、Unix系コマンドインタプリタの基礎知識なんだが。
Unix系コマンドインタプリタ(以下シェル)では、実行モジュールを探すのにPATH環境変数を利用する。
ロートルUnixオペレータはしばしばカレントディレクトリ(.)をPATH環境変数に含めてしまう。
そうすると、カレントディレクトリの実行モジュールがパスなし(ファイル名のみ)で実行できてしまう。
最近のシェルは一般的にディフォルトではカレントディレクトリをPATHに含めるようなことはしないので、
パスなしでは実行できない。それだけのこと。
何故カレントディレクトリをPATHに含めてはいけないか、についてはスレ違いでもあるので
自身で調査することをお勧めする。
105 :
101 :2007/07/08(日) 14:28:03
>>103 ご丁寧にありがとうございます。
説明されればああ、当たり前のことなんだと理解はできるのですが
解決までもっていけないほど初心者だったので恥ずかしく思っています。
>>104 言い訳になってしまうのですがパスについてすらならっていなかったので
丁寧に説明していただいてありがとうございます。
カレントディレクトリをPATHに含めない件はスレ違いとのことですが
お勧めしていただいたので調べたので必要ないかもですが
理解したという報告まで・・ 環境によってコマンドが変わる事を避けるためと理解しました。
ありがとうございます。
返答が遅れましたが本当にスレ汚しのような質問にご丁寧に答えていただいてありがとうございます。
cygwinのインストールがおかしいのかと消しては入れなおしたりを半日以上繰り返していた
ため本当に助かりました。
本当にありがとうございます。
たぶんみんな知ってるから わざわざ報告しなくてもいいと思う そのレスもこのレスも無駄と判断するのが UNXクオリティ
俺は解決したらそれっきりって奴よりいいと思うけどな。
ムダかどうかというムダなレスが三つ(これも含む)増えてしまったわけだが。
cygwinを導入し、windowsのコマンドプロンプトでUNIXコマンドを利用しています。 ls や which といった一般的なコマンドは使用できるのですが、 ../hoge.exe などと打ち込むと '.' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 というメッセージが出てしまいます。 ./ を有効にすることは可能でしょうか? OSはWindows XP pro です。 ご教授お願いいたします
>>109 cmd.exe は / をパスの区切りとしては見てくれない。
.\hoge.exe でがまんせい。
cygwin 導入したんなら、cygwin で作業すればいいと思うんだけど。
APIレベルでは/でも通るって本当?
本当?
本当。
115 :
デフォルトの名無しさん :2007/07/21(土) 19:31:36
Windows Vista にcygwinをインストールしたいんだけど、 ダウンロードが終わった後のインストール段階で、33%くらい進んだところで必ずとまってしまって、 後は何時間放置してもうんともすんとも言わないんだけど、仕様?
おそらく後ろに別のウィンドウが隠れている
117 :
デフォルトの名無しさん :2007/07/21(土) 21:25:21
いや、何もなかったんだが
ぼくのちんちんも皮の中に何か隠れています。
箪笥の下に一匹いました
MinGW + GCC から Excel ファイルを作ろうと思います。 どのようにするのが一番コンパクトですかね?
>>120 最近POIをgcjでコンパイルして,CNIでC++から使おうとして挫折しましたorz
トライしません?
この方法Linux上だとうまくいったのだけど,
Linux上でwin32へのクロスコンパイル環境を作って,
それで試したら私は失敗しました.
123 :
120 :2007/07/25(水) 11:33:31
>>121 うん、xlsがいいな。できれば幅変えたり色つけたりしたい。
>>122 Javaやrubyを通せばできなくはないけど、C++使っててそれは・・ねぇ。
そんなに需要がないわけでもなさそうなのに情報がみつからん・・・。
Win32環境だったらExcelをCOM経由で呼び出すのはどうだ? OOoもいけるのかな?
COMを使うならVC++の#importが恋しい。
プロプラなんだから情報なんざそうそうあるわけねぇ OOoから物故抜け
OOoってmingwでビルドできるんだっけ?
mingwのgccってstl エラー無く作動するの?
mingwでSTL使ったら感染するのかな? GPLに
>>129 ヘッダにライセンス書いてあるから読んどけ。
gcc (GCC) 3.4.2 (mingw-special) #include <vector> void m(const char *s0) { std::vector<int> vec(20); } gcc src.cppで : undefined reference to `__gxx_personality_sj0' collect2: ld returned 1 exit status てなエラー。こういう眠くなるエラー見るだけでやる気ナッシング。
特にSTLのエラーメッセージははまると最悪。
普段C使ってるけど、STLコンテナ使いたくてC++にした。 だからついgcc でやる。 gccのコマンドオプションも眠くなるぐらいあるから気がつかなかった。 やっぱ敷居が高そうだし、vs2005 cl にもどろっかな。
普通はMakefileに書いておくのでいちいち手でコマンドうったりはしないような… まぁ書き捨てプログラムで gcc a.c とかはやるけど
俺は汎用 Makefile 作って、 それを include するだけの Makefile をカレントディレクトリに作るコマンド作ってるな。 まあ、書き捨てプログラムは特定のディレクトリを使い回してるけど。
まぁまぁまぁまぁまぁライオン
違う言語から呼び出すために、APIをラップしたちょっとしたDLL作ってる。(JAVA)
141 :
デフォルトの名無しさん :2007/08/08(水) 22:55:04
VC++に無い関数を使いたくて Cygwin+gccでラッパーDLLを作ろうと思っています。 そこで質問なのですが、Cygwinのfopen()の返すファイルディスクリプタと、VC++のfopen()の返すそれとでは、互換性はあるのでしょうか?
そもそもFILE構造体自体に互換性がなかった希ガス。 mingwならいざ知らず、ラッパー作るのも一筋縄じゃいかないような。 一体全体、何をやりたいんだ?
プログラム全体をCygwin上でコンパイルしたほうがきっと楽。
VC++になくってcygwinにある関数を使いたいって… そのcygwinの関数はVC++で使えるであろう Win32 API で 実装されてると思うからえらく遠まわりなことをしてる気が…
ソースコンパチのコード書く場合、てっとりやばいからじゃない?
たとえば、mmapを使いたいとかね。MapViewOfFileだと、結構差があるからそこから合わせるのは結構面倒。
っていうか、
>>141 のレスからしてmmapでビンゴな希ガス
ちなみに100%GCC向けでコードかけばソースコンパチじゃないかって話になるが まぁ、デバッグの都合上とか、最適化機能がgccは割とトロいとか、その辺の話かな
>>146 「GCC向けコード」って何のことを指してるんだ?
コンパイラとしてGCCを使ったとしても使える API は OS 毎違うわけで…
API も同じにしたい人が cygwin のような API レベルのエミュレーションを使うわけで…
ああ、そこをつつかれるとは思わなかった Cygwin向け(POSIX向け)ね。 mmapはWindowsのWin32APIにはないから。
>>147 Win32APIにはmmapは用意されてないんだよ。
>>145 の言うように代用のAPIがある。
あと、Cygwin使えば基本的にはPOSIX準拠のAPIは使えるよ。
なんかスンゴイの作ってるんだよ。きっと
151 :
デフォルトの名無しさん :2007/08/09(木) 17:33:16
質問です。 Cygwin+GCCで開発を行っているのですが EclipseやVisualStudioのような、高機能でGUIな開発環境を使いたいのですが 何かありませんか?コード保管や、エディタと連動したデバッガなどの機能が使いたいのです。 よろしくお願いします。
>>151 何故EclipseやVisualStudioを使わないのですか?
誰も止めませんよ?
>>152 製作はWindowsで、
実際の運用はBSD系の環境でやりたいのです。
作業の効率化の為にWindowsで作業しているものの、普通のエディタで作業してもメリットは薄く
VisualStudioでやっていましたが、当然ですが、デバッグ機能はMSのコンパイラでなければまともに動きません。
だから、何故VisualStudioで開発しないの? 運用がBSD系だからと言って、クロスで開発できるのならgccに拘る必要もないでしょうに。 もし仮に、BSD系にしかない関数を使っているのならソースを入手してきてコンパイルするとか、 ダミー関数を作るとか、いくらでも手はあるでしょ。
>もし仮に、BSD系にしかない関数を使っているのならソースを入手してきてコンパイルするとか、 >ダミー関数を作るとか、いくらでも手はあるでしょ。 当然開発環境がなければ、その選択を取る必要があるでしょうが あると仮定するならば、わざわざバグが潜む可能性がある開発技法をとるメリットがありません。
よくわからんがBSDターゲットでわざわざcygwinでクロス開発を してるってことかしら BSDでEmacsenかEclipse + CDTでも使って開発したほうがいいんでないの
>>157 Sun嫌いだとEclipse使わないのか…
IBM嫌いで使わないってならまだわかるけど…
Eclipseの意味を辞書で引いたことがないんでないの?
>>157 皮肉。横着するための努力を惜しむなと。
#どうせ他人事だしね。
>>158 君は、Javaの自動アップデートがかかって、Eclipseが不安定になった事が無いのか。
あれほど腹の立つことは無い。
#単純には自動外せば良い話だが、俺はもうSunを信用する事が出来ん。
>>159 皮肉を言うなら、もっと徹底的に。
中途半端過ぎる。
>>160 >君は、Javaの自動アップデートがかかって、Eclipseが不安定になった事が無いのか。
ない.JREのバージョンによらずEclipseはもともと不安定だしな.
やっぱりオープンだと変なやつ多いな。 きっと、なんかスンゴイの作ってるんだろうな。
MSYSで/usrをマウントしたいんですが/にマッピングされてしまいます。 ディレクトリ E:\usr を作って etc/fstabに E:\usr /usr と書いてみたんですが マウントできませんでした。MSYSで/usrをマウントすることはできないでしょうか。
スンゴイで逃げるなよ。皮肉に失敗してただの馬鹿っぽくなってるぞ?
gonzuiの作ってるんだろうな。
166 :
デフォルトの名無しさん :2007/08/18(土) 15:29:03
ぶひー cygwinのgdbでwatch pointを使いたいのですが反応がありません おまえらのcygwinでは使えてますか?
167 :
デフォルトの名無しさん :2007/08/18(土) 20:07:00
はい
MinGWを3.4.5にしてみた STLport5.1.3をビルドすると3.4.2では出なかった警告がわらわらと・・・・ 何か心配だべ
俺は snapshot の msys にしてみたら $ mkdir foo.dir $ rm -rf foo.dir rm: cannot remove directory `foo.dir': No such file or directory だぜ なんだこりゃ.. orz
170 :
166 :2007/08/19(日) 00:58:08
うーむ いちおうHardware access (read/write) watchpoint 1ってでるんですが止まらずそのまま実行されちゃいます
>>171 さんくす戻してみます
この現象どうもマウントポイント以下で起きますね
mkdir /foo; rm -r /foo は消せるけど
マウントした /mingw の下にあるディレクトリが消せない(見えてない)
msys上での configureが超遅いのには泣ける。 gccのビルドが半日がかりだよ。 orz
そういや最近の事情を知らないんだけど何が変わったの?
意味あるのそれ
#pragma omp parallel num_threads(100) printf("uho!\n");
Cygwin ってなんのためにあるの?
>>179 UNIX の魂を持つ社畜が Windows を使わされた時の救済のために
>>180 そしてそのAPIの遅さに絶望するんだよなw
# シェル環境としては便利だからいいけど
mingw 使うからいいさー
> UNIX の魂を持つ社畜が Windows を使わされた時の救済のために いや、そのりくつはおかしい。 そういうときは、会社辞めればいいんだよ。
Windowsのホームディレクトリ(Document and Settings以下)でls実行すると 異常に時間がかかりすぎ たかがlsで何やってんだよ
MinGW で boost 1.34 使おうと思ってDOS窓から bjam したけど "-sTOOLS=mingw" を認識しない ビルドできねw 1.33 の時はこれで通ったんだけどなぁ・・
Boostスレ行ってV2で検索汁
>>183 社畜が会社を辞めようなんて思うわけがないだろ
社畜はリストラされると全人格が否定されたが如く思って自殺するような人種を指すんだぞ(w
188 :
185 :2007/08/25(土) 16:39:32
> 社畜が会社を辞めようなんて思うわけがないだろ > 社畜はリストラされると全人格が否定されたが如く思って自殺するような人種を指すんだぞ(w 今の時代にそんな人いるの?www
>190 それだけなら Xming もあるべ。
Astec X ってどうなった? 逆串か何かおかしいようで Web みれんけど。
MinGWでmecabをコンパイルしてみたのですが できあがったdllがlibmecab-1.dllみたいに"-数字.dll"となってしまいます これをlibmecab.dllのように吐きたいのですがどこを見ればよいのでしょうか
>>191 いいこと聞いた。
でも、sshdを使うためにcygwin
>193 configure した結果できる libtool の soname_spec を書き換えるのが簡単だと思う。
>>195 ありがとうございます!
ご指摘通りsoname_specのversuffixを潰したら望み通りの結果になりました
cygwinでwine-0.9.44をmakeできるpatchありませぬか? というか、configureするとヘッダは検出できるのに -lX11とか-lpngとか-lfreetypeとか、ライブラリが一切 検出されないんだけど、なんなんだろうか。
find /cygdrive/c/ -name 'libX*' -print
>197 configure のスクリプト自体が Windows 上の場合にライブラリ名を判別しないように作成されている。 aclocal.m4 先頭の WINE_CHECK_SONAME 参照。 cygcheck 使って依存 DLL を引っ張ってくれば設定できるかもしれない。 で、単なる興味本位だが、Linux 板の Wine スレでも見たんだけどさぁ、なんで Cygwin 上で Wine を使いたいの?
そこに、やまが、ある、か ら
>>199 別に MinGW でもいいけど、windows で wine が動けば
ベースになる windows のバージョンに依らずにアプリを
動かすラッパーというか互換レイヤーというか、そんな
感じに使えそうな気がしないか。
まあ、make 通っても結局 windows のシステムコールに
頼るわけで、動いても実用的でなさそうだとは思うけどな。
しかし、実際には動かないのではただの皮算用だし、
せめて動かすとこまでいってくれないかなあと思うのは
人情というものだ。
# 「下手の考え休むに似たり」というツッコミは勘弁してくれ
そして wine の上で cygwin を動かすんだよな
河童の川流れ
取らぬ狸の皮算用
206 :
デフォルトの名無しさん :2007/09/06(木) 18:46:22
zshでcdとかで補完候補リスト内の要素をタブ連打で選んでる時 リスト内に日本語のファイル名があるとリストのレイアウトが崩れて なおかつタブ押すたんびに、改行が入ってしまうのですが解決策はありますか? lsでは問題なく日本語のファイル名を表示できているのでzsh側に問題があると思います
207 :
デフォルトの名無しさん :2007/09/07(金) 01:30:31
杉樽如御呼猿
ckがマルチバッファに対応してる事に今気がついた俺ガイル screen起動すると日本語化けてたのですがこれで幸せになれそうです
MinGWでgcc-4.2.1使ってみたけど VistaでGCC_EXEC_PREFIXをセットしないと正常に動かない問題が 解決されたんだな
210 :
デフォルトの名無しさん :2007/09/11(火) 05:23:20
今まで気にしたこともない”[.exe”が何なのかググろうとしたがGoogleの中の人が記号の連続を無視しやがる。
中の人も大変だな シェルスクリプトの if [ ... ]; で使われる。
>>210 Unixだと大抵testの別名(ハードリンク)だな。
googleの中の人に[やら.やらをエスケープして渡すことはできますか という質問かと思った。
>>213 それだとスレ違いになってしまうと思ったのだが。
案外素直にそういうことだったのかも知らん。
ただのちらしの裏だろ みんな親切すぎw
216 :
デフォルトの名無しさん :2007/09/17(月) 23:57:26
質問ですが cygwin + ada でヘローワールドを作成しました これがcygwin上からでしか動かない またはDLLが必要になるのですが C++ + minGW みたいにexe単体で動かす事は出来るのですか?
cygwinでコンパイラをMinGWに
OKベイベー!試してみるぜヨロシク!!!
>>216 コンパイル時に-mno-cygwinオプション付ければいいよ。
GUIなアプリケーション書いてるならさらに-mwindowsオプションも付ける。
221 :
221 :2007/09/18(火) 21:14:20
みんなありがとう!
なんかエラーが出たッぽい
リンカエラーだ
だがここから先は俺の役目
>>221 俺に任せろ!
adaでも-mno-cygwinって使えるのか?
オーバーマンキングエイダー 超人ada王 エイダーマンキングゲイナー ada人ゲイナー王
224 :
デフォルトの名無しさん :2007/09/18(火) 23:04:41
質問させてください。 windresでリソースをコンパイルしようとしたのですが、下記のエラーがでます。 gcc: installation problem, cannot exec `cc1': No such file or directory 解決策をご存知の方おられますか?
226 :
デフォルトの名無しさん :2007/09/19(水) 15:30:35
Cygwin + MinGW + GCC なんてソースしか公開してないイケズなアプリのコンパイルにだけ使えばいいんです。
227 :
デフォルトの名無しさん :2007/09/21(金) 10:07:03
cygwinのg++でstd::wcoutやstd::wstringを使いたいと思い gcc3.4.5をビルドしそれを使いコンパイルしてみたのですが「stdにwcoutなんてないよ」と言われてしまいました configureのログを見てみると checking for fgetwc... no checking for fgetws... no checking for fputwc... no checking for fputws... no checking for fwide... no とありwidecharを扱うCの関数がないのが問題のひとつだと思うのですが cygwinでこれらを使えるようにできるパッチなどはありますか?
>227 Cygwin のロケール実装が腐ってるのがそもそもの原因なので諦めるのが吉。
そしてMinGWではライブラリ実装が未整備という罠
結論:MSのVisual C++を持っている奴を殺して奪い取り世紀末覇者になれ!!
そこまでしなくてもExpressとPlatform SDKでいけるだろ スレ違いだが
今はWindows SDKに改称されたみたいだけど、アホみたいにサイズがでかいんだよな ダイアルアップの俺には厳しいぜ その点、MinGWは必要な部分だけダウンロードできるからうまー
人んち、学校、ネカフェ……。 どこか高速回線のところで落としてDVDに焼けばうまー。
Windows SDKはどれを使うべきなんだろう?どれ選んだらいいかわからんす VCでも起きるんだけど dxguid と strmbase/strmiids を一緒にリンクすると衝突するよね。 新しいWindows SDKの strmbase/strmiids では直っているのかな。
まあCOMベースなのでこのためにわざわざ替える必要もないか。。
まあドトネトイラネな人にとっては、Platform SDKで良かったのにって話だわな Windows SDKに統合されたおかげでドトネト部分のドキュメントも 英語オンリになっちまったし
>>236 Windows SDK日本語版なら、
.NET Framework部分は日本語だぞ。
こんな過疎スレに来てまで罵倒する相手探しとは よほど暇なんですね
すいません、MINGW+Msysでコンパイルしたコマンドラインプログラムを コマンドプロンプトから実行しようとすると、 "KKCFUNCを組み込みました" というメッセージがでて端末が フリーズしたようになってしまうんですが、これを回避する方法はありますか? mingw5.1.3, msys1.0.10 on WindowsXP sp2 です ちなみにlibcurlを作るためにビルドしたcurlコマンドも同様になります。 opensslコマンドはちゃんと動いているように見えるけど、 これはlinux上でクロスコンパイルしたものです。
>>241 ありがとう。
いまリンカオプションが臭いような気がしてopensslのMakefileを眺めてる
なんかわかったら報告する。しなかったら挫折したということで。
kkcfuncっていえば16bitアプリになってるような気がするね いや、よくわからんですけど
kkcfuncが原因じゃないと思う とりあえず必要最小限の再現可能ソースを晒せ
245 :
240 :2007/10/04(木) 15:58:57
とりあえず報告 問題はlibcurl.dllにあったみたい。 こいつがどうも変なライブラリにリンクしてて、 それが16bit?な環境に依存してるのでKKCFUNCが起動された...と思う。 Windowsは正直良くわからない。 CURLの本家が配布してる2000/XP用のlibcurlバイナリに差し替えたら直った。 なんでCURLがそんな変なライブラリに依存してたかは時間があれば調べてみる 時間がかかったのは、単純に問題のlibcurlにリンクして初期化するだけの プログラムでは問題が起きなかったから。でもこれは勘違いかも。 autotools使ってるunixソフトの移植なんて簡単さ、と思ってたら 結構いろんなとこでハマって困った。 つか、windowsのリンクってなんか変。
漏れもkkcふんcを組み込みましたというえらーにであたことあります 拡張子がcomの実行ファイルがjっじこうされたことがっげえいんだったとおもいます たぶんpythonかrubyだったとおもいます それをけしてふつうのEXEがじこうしたらふつうになりました
247 :
デフォルトの名無しさん :2007/10/09(火) 04:10:09
Cygwinで setlocale(LC_ALL,"Japanese_Japan.932"); が動いた記念カキコ。 -mno-cygwin -finput-charset=cp932 -fexec-charset=cp932 これでCロケール使わせれば、Boost.Regex使えないかな・・・
>>247 日本語 Windows では cp932 がデフォルトだから、それ、
setlocale() が動いたんじゃなくて無視されてるだけじゃないの?
どんなコードが「動いた」のか教えてほしい。
>>247 それおもいっきりMSVC用のロケール文字列だな
-mno-sygwinしてて実はmingwでした
MSVCRTとリンクしてました
ってとこじゃねぇのか
-mno-cygwin なんだから当然 cygwin.dll じゃなく MSVCRT だろ
252 :
247 :2007/10/10(水) 21:52:09
cygwinで(Boost1.33.1)
Boost.Regex for ICU 使えたよ。
-finput-charset=cp932 -fexec-charset=cp932
(1)ICUをインストール
(罠:configure系スクリプトの改行コードを変更してインストール)
/usr/local にデフォルトでインストールされる。
(2)Boostをインストール
boost/regex/usr.hppの
#define BOOST_REGEX_MATCH_EXTRA
#define BOOST_HAS_ICU
のコメントアウトをはずしてからICUのパスを指定してインストール
./bjam -sICU_PATH=/usr/local --toolset=gcc install
(3)テストではまった点
・ICUはdllだがlibとほぼ同様にリンクできる。
・IDEはDevC++でやると少し楽かもしらん。
・ICUのUnicodeStringはgetTerminatedBuffer使わないとNULL文字がついてこない罠がある
・標準出力はwide->narrowに変換してから使う。
(ただし、cygwinのCP932のsetlocaleは失敗するぽいのでロケール関数は使えなかった。緊急策としてMingwでsetlocale,mbstowcs,wcstombsをラップしたDLLを作成して対処した。
>>247 参照)
ごめんなさい。よく分からないです。 オプションを参照せよとのことでしょうか?
xならdisplay接続先のXサーバがあるわけで、それを指定するには大抵DISPLAY環境変数を使うわけだ。 Xサーバがローカルなら、DISPLAY環境変数に":0.0"でも設定しておけばいいはずなんだが。 もしXの環境構築の経験がないなら、LinuxでもMacでもSolarisでも一度その辺りを覗いてきたら?
詳しい解説ありがとうございます。 残念ながら全く理解できません。 私は環境構築とかのレベルじゃないようです。 失礼しました・・・。
GDI+は MinGWでも使うことはできるのでしょうか?
>>259 試したことねーけど普通に使えると思うよ
gdiplus.dllに入ってるのはflat APIとよばれる普通のCインタフェースで
それをC++のヘッダに書かれたクラス群でラップしてるだけだから
リンケージやABIまわりの問題は無いはず
261 :
259 :2007/10/14(日) 14:53:45
>>260 サンクス。
G++用の<windows.h>を使うので、DevC++でWinApplication作成。
PlatformSDK/IncludeからGdiplus関係のヘッダーをプロジェクトにコピーしてGdiplus.hをインクルード
Gdiplus.libをLibraryに追加
このままだとエラーでるので少し修正必要ぽいです。
動作テストはしてませんが、コンパイルは通りました。
GdiplusEnums.hの
534行目のenum EmfPlusRecordType;をコメントアウト。(前方宣言いらないくさい)
538行目のGDIP_WMF_RECORD_TO_EMFPLUS(n)マクロのEmfPlusRecordTypeへのキャストをコメントアウト
GdiplusImaging.hの
156行目の PixelFormat PixelFormat;を ::Gdiplus::PixelFormat PixelFormat;
GdiHeaders.hの
653行目の friend Graphics;をfriend class Graphics;
すいませんgccスレで聞いたほうがいいっていわれたんで聞かせてください 調べてもわからんかったので聞きたいんだけどeclipseのエラーで Error launching external scanner info generator (gcc -E -P -v -dD C:/Eclipse/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c) try1 これ何すか? プロジェクトを作るとすぐに警告が出ててできません。 どうすればなおるでしょうか?
バージョンも環境も書かずに
264 :
デフォルトの名無しさん :2007/10/25(木) 15:42:22
多分その前のスレの奴らは こんな奴相手に出来るか! と思って厄介払いしたんだな。
Windows上でGtkmm使ったプログラムを創ろうとしています Cygwin環境でやるのがいいか Mingw環境でやるのがいいか それともネイティブがいいのか 迷っています
>>265 迷う程度の知識レベルなら止めた方がいいと思います。
Qt4でやれ
cygwin環境のgccで.cをコンパイルしたんですが、実行している途中 タスクマネージャで実行プロセスを見ると最大使用メモリ量と使用メモリ量が同じでした。 これは使用メモリ量の制限によって処理速度が落ちていると考えてよろしいでしょうか? 時間のかかる処理なので少しでも速くしたいのですが、解決策はありますか? regtoolでcygwinの最大メモリを増やすのは試しましたが、見当違いだったようです。
>>268 そもそもメモリが足りなければ、GCCは落ちると思う。
タスクマネージャのヘルプによれば、
最大使用メモリ量は、プロセスが開始してからのメモリ使用量のピーク値。
だから、これが使用メモリ量と同じだったからといって、足りていないということではない。
>>269 そうなんですか、己の無知がお恥ずかしい・・・
迅速な返信ありがとうございました。
>>269 gccの実行中という意味なのか?
>>270 速くしたいなら効率の良いプログラミングが出来るように
勉強したり、経験を積むしかないだろ
コンパイル中のメモリのことじゃなくて
実行プログラムの方の話を行ってるんだろう
>>271 は日本語の勉強をしたほうがいい
>>270 JavaやLispのようなGCあり言語の経験を元に話してる?
コミットチャージが物理メモリを越えてとスワップ処理で遅くなるけど
最大メモリは関係ない。プロファイルとってみたら?
274 :
デフォルトの名無しさん :2007/11/10(土) 06:18:35
Cygwinではstrdup関数はどこのフォルダのどのファイルに定義されていますか? string.hでは宣言のみでした。
275 :
デフォルトの名無しさん :2007/11/10(土) 06:26:11
strdupの返り値は(char *)型のはずなのに、Cygwinだと↓で警告が出るのですが #include <stdio.h> struct p_person { char *name; char *address; char *tel; }; int main(void) { struct p_person person; person.name = strdup("abcd"); person.address = strdup("埼玉県所沢市どこそこ9-3-1"); person.tel = strdup("042-951-XXXX"); return 0; } ちなみにバージョンは $ help GNU bash, version 2.05b.0(9)-release (i686-pc-cygwin)
>>274 ライブラリの中。
>>275 何て警告が出るの?それを読んで、どうすればいいかわからないの?
そのバージョン、 bash のバージョンだよ。コンパイラのバージョンは
gcc --version ね。
MinGW-5.1.3とgcc-3.4.5でSTLport-5.1.4を使いたいのだけど、 コンパイル時undefined reference toとか出てきて上手くいかない。 (-lstlport.5.1とかやってるにも関わらず) 上手く動いている方、インストールの手順を教えてくれませんか?
279 :
デフォルトの名無しさん :2007/11/10(土) 17:13:20
MinGWのGCC使ってOpenGLのプログラム書いてるんだけど なんかgl.libとかglu.libがないような気がするんだが。 undefined reference to wglCreateContext@4 とか出るし。
マニュアル嫁よ
>>278 それはmsysでbuild/libで./configure -c gccしてからmake -f gcc.mak install-staticするってこと?
やってみたけど駄目だった。orz
以下、コンパイル時のコマンド
g++ -lstlport.5.1 stl.cpp
C:/DOCUME~1/main/LOCALS~1/Temp/ccyobaaa.o:stl.cpp:(.text+0x33): undefined reference to `_imp___ZN11stlpmtx_std4coutE'
(以下略)
282 :
271 :2007/11/11(日) 11:16:59
>>272 日本語の勉強が必要なのは269だろ。
あとお前は脳神経外科にでも池
283 :
277 :2007/11/13(火) 00:32:20
解決した。 -oオプションが抜けてた。orz けど、プログラムの先頭に #define _STLP_USE_STATIC_LIB と書いてもダイナミックリンクになってしまうんだがこれってmingwの使用か?
#defineはプリプロセッサへの指示であってリンカへの指示じゃないぞ。
285 :
277 :2007/11/13(火) 08:50:58
>>284 その通りだな。orz
初心者ですまん。
先日cygwinを導入してこちらのサイトにあるソース
ttp://www.geekpage.jp/programming/linux-network/getaddrinfo-1.php をgccでコンパイルしようとしたところ
net2.c: In function `main':
net2.c:11: error: storage size of 'hints' isn't known
net2.c:12: error: storage size of 'addr' isn't known
net2.c:24: error: dereferencing pointer to incomplete type
このようなエラーが出てしまい、うまくコンパイルできませんでした・・
他サイトの似たようなソース等も試してみたのですが同様のエラーが発生して
うまくいきません。
これをどうにか回避できないでしょうか?
gccのバージョンは
gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
です。
netdb.hを探して"addrinfo"で検索かけてみ
オウ・・無いですね 手打ちで追加してみたんですがどうもうまくいかないのですが cygwinでコンパイルするにはどうすればいいのでしょう?
PCクラッシュをきっかけに、MP4Boxのbinaryを探していたら、GPACの公式にてLisence問題? でSourceのみの配布に変わっていた為、初めてMinGW+MSYSな環境を立ち上げようとして います。 SourceForgeから必要最低限のbinaryを取ってきたのですが、MSYS*.exeが見つかりません。 それでも何とかshellが動作するようになったのですが、/ に本来Installしたフォルダとは別に /usrも後からmountされてしまいます。fstabにはその様な記載はしておらず、レジストリに 情報が無いかと検索を掛けてみてもmount情報が見つかりません。予想通り、/usrの下は /になっており、コマンドのpathが通らなくて目的のbinatyがbuild出来ない状況です。 mount情報には、fstab以外の情報も有るところを見ると、何処かで設定していると思ってい るのですが、自分の力不足で見つけることが出来ず困っております。レベルの低い質問で 申し訳有りませんが、情報、「スレ違いだから***で聞け!」等、アドバイス頂けないでしょ うか。
ごちゃごちゃしてよくわからん
fstabに書いてないのがマウントされるのはそんなものだと思うけど。 俺のfstabはこんなの c:/MinGW /mingw c:/msys /msys で、mountの出力はこんなの D:\TEMP on /tmp type user (binmode,noumount) c:\MinGW on /mingw type user (binmode) C:\msys on / type user (binmode,noumount) C:\msys on /usr type user (binmode,noumount) c:\msys on /msys type user (binmode) c: on /c type user (binmode,noumount) d: on /d type user (binmode,noumount) f: on /f type user (binmode,noumount) gccとか動くの?
292 :
289 :2007/11/22(木) 23:03:52
説明下手ですいません。
まず、msys*.exeが無いので困ったのですが、msysCORE-1.0.11-2007.01.19-1.tar.bz2
を入れたところ、shellの起動が可能になりました。
その後、make install出来る環境が出来たのですが、入れたはずのbinaryが無かったり
エラーを吐きまくったりしたのでmount情報を見たところ、/usr が / にmountされていて、
pathの整合性が取れていない状態になって今に至ります。
mountの出力は
>>291 さんと同じような感じです。
C:\DOCUME~1\hara\LOCALS~1\Temp on /tmp type user (binmode,noumount)
c:\msys\mingw on /mingw type user (binmode)
c:\tools on /usr/local type user (binmode)
C:\msys on / type user (binmode,noumount)
C:\msys on /usr type user (binmode,noumount)
c: on /c type user (binmode,noumount)
d: on /d type user (binmode,noumount)
z: on /z type user (binmode,noumount)
これがおかしいと思うのですが。cd /usrとしても/に戻ってきてしまいます。
> C:\msys on / type user (binmode,noumount)
> C:\msys on /usr type user (binmode,noumount)
win上のc:\msys\usr\binと、shell上の/usr/binが別の場所を指してしまいます。
c:\msys\usr\binにはcvs.exeやmake.exe,msys-z.dllが入っていてshell上でcvs
が実行出来ない状態です。
win上のc:\msysが、/ だと思っていたので、ここでお手上げになりました。c:\msys
は / なのでしょうか?/usrなのでしょうか?
んーと msys だと /usr も / も msys にマウントされるみたいなのよ だから /usr/bin は /usr の下つまり msys の下だから msys\bin になる 違和感を覚えるけど まあそういうものみたいだと割り切ってるけど
質問ですが、MinGWで関数名の最後に@XXがついていないDLLを使用するにはどうすればよろしいでしょうか? @XXのないDLLを作成するのは-kオプションでできますが、それをMinGWから利用しようとするとundefined referenceと出てしまいます。 DLLをコンパイルするときに-kオプションをつけなければ難なく呼び出せます。 呼び出し規約はstdcallです。IDEはDev-C++を使っています。 どうしても@XX以降をなしにしたいです。
296 :
295 :2007/11/23(金) 14:29:52
解決しました。 モジュール定義ファイルに@XXつきの関数を列挙してそれを元にdlltoolしたところ問題なくできました。
297 :
289 :2007/11/24(土) 00:55:18
反応遅くてすいません。さすがに会社から書き込みはしないようにしてるので。
>>293 すみません。1.1.11は正式リリースでは無いんですね。1.1.10を入れれば何も
問題は無かったようで。
>>294 環境が落ち着いたらsrcからbuildで/binにインストールされますが、最初に
幾つかbinaryでwinからインストールした時には。c:\msys\usr\binにコピー
していたので混乱しました。入っているはずのperlが無いとかzlibが無いとか
言われ、面倒なのでwinから見たc:\msys\usr以下を全てc'\msysへ移動さ
せました。これで今のところ問題は出なくなったのですが、/bin=/usr/binは、
やはり違和感有りますね。別途mountしないと、/usr/localがc:\msys\local
になるので、やはり直せるもので有れば直したいところです>mount情報。
>入っているはずのperlが無いとか〜 以下 チラシの裏に書け。
299 :
デフォルトの名無しさん :2007/11/25(日) 15:20:07
MinGWをコンパネのプログラムの追加と削除でアンインストール(MSYS含む) したんだけど、フォルダとその中身が消えね。 誰か正しいアンインストールの方法おしえテルミー。 レジストリもなんかいじってんのかな?
フォルダとその中身を消せばいいんじゃね?
301 :
デフォルトの名無しさん :2007/11/25(日) 16:14:10
レジストリに何か残ってたらまずいんだけど。。。
OS再インストールすればいいんじゃね?w
303 :
デフォルトの名無しさん :2007/11/25(日) 21:54:35
Vistaにcygwin入れたんだけど、マウスでドラッグして文字列選択する場合 、いちいち[編集(E)]→[範囲指定(K)]してからじゃないと選択できないんだけど 2000でやってたときは、何もしなくも選択できたのに 何とかならんでしょうか?
プロパティで簡易編集モードをONに
305 :
デフォルトの名無しさん :2007/11/25(日) 22:29:50
306 :
本田 :2007/11/26(月) 00:32:24
HX DOS Extender
http://www.japheth.de/HX.html Many development environments which support creating Win32 console applications are compatible with HX, among them are:
* Open Watcom C++
* Digital Mars C++
* MinGW (uses GCC)
* CygWin (uses GCC)
* MS Visual C++, including the free version of MS Visual C++ Toolkit 2003
* Borland C++, including the free version of C++ Builder Command Line Tools
* LADSoft CC386
* Pelles C
* LCC-Win32 (C compiler)
* Borland Delphi
* Free Pascal (Win32)
* Pascal Pro
* Virtual Pascal (Win32)
* FreeBasic (Win32)
* PowerBasic
* MicroFocus Object Cobol
* XDS Modula II
* MASM, TASM, POASM, WASM, FASM, LZASM, NASM, GOASM, ...
do sex tender か いやらしいな
However, as I mentioned above, the -mno-cygwin parameter is going to be phased out. Primarily because people think it does something it doesn't, and that leads to way too many support requests on the cygwin mailing list: Q: My unix app compiles on cygwin. Now I want to make a version that doesn't use cygwin, so all I need to do is say -mno-cygwin, right? A: Wrong...you're still making posix calls... Q: you guys suck! A: #!@%! 笑
部分文字列一致でサクサクパッケージを選択したい.
310 :
デフォルトの名無しさん :2007/11/27(火) 00:44:48
僕のcygwin環境だと、ls-lすると、例えば、以下のように表示されるですけど ここでファイル属性の最後の'+'って何の属性でしょうか? ----------+ 1 xxxxxx None 333402 Aug 9 2005 loop.c
acl で内科医
312 :
デフォルトの名無しさん :2007/11/27(火) 01:22:24
>>311 勉強になりました、ありがとうございます。
313 :
デフォルトの名無しさん :2007/11/27(火) 18:43:33
GCCを用いた統合開発環境(IDE)を作ろうかなって思いついたんだけど、 MinGWのGCCってGPLだから、その利用を前提にしたIDEもGPLに従わんといかんのかな? BSDライセンスとかソースを公開しないでいいGCCってあるの?
ボーランドのビルダーXとかあったけど
IDEの動作にGCCが必須ならGPLになるかもしれんけど、 そういうわけではないだろうから問題ないと思う
>>313 gccじゃないがpccとかBSD界隈では注目されてるね
子プロセスとして起動する程度ならGPLの影響はないけど
ソースレベルで利用するの?
Eclipse+CDTを使えばいいじゃない。
既にあるじゃん、って話なら他にも腐るほどあるじゃない。
>>313 リンクしたりしなければGPLに感染したりしない.
#コマンドを呼んで感染するならシェルはみんなGPLだな…
320 :
デフォルトの名無しさん :2007/11/29(木) 09:14:53
CC: LDLIBS = -l/usr/X11R6/include -L/usr/X11R6/lib -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm .c: $(CC) init2.c $(LDLIBS) -o init2 というMakeFileを使用して make init2 を実行したのですが、以下のような表示が出力されて実行ファイルが作成できません。 どんな原因なのでしょうか? $ make init2 cc init2.c -l/usr/X11R6/include -L/usr/X11R6/lib -lGLU -lGL -lXmu -lXi -lXext -l X11 -lm -o init2 init2.c:68:2: warning: no newline at end of file /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -l/usr/X11R6/include collect2: ld returned 1 exit status make: *** [init2] Error 1
cannot find -l/usr/X11R6/includeってちゃんと理由書いてあるだろ。
本当は -I/usr/X11R6/include (小文字の L ではなく大文字の i) にしたかったんだろうな
makeしたときにでるNothing to be doneってのだけを消すことはできませんか? 実際にコンパイルしている様子は表示してほしいのですが Nothing to be doneはうっとおしいので、なにもすることがなければ 静かに終わってほしいのです。 make -sってやるとなにも言わなくなってしまう…
×うっとおしい ○うっとうしい
>>323 #!/bin/sh -f
make $*|grep -v 'Nothing to be done'
>>325 もう少しがんばりましょう
> Nothing to be doneってのだけを消すことはできませんか?
unixコマンド全般についての質問は板違いなんで他あたってくれ
328 :
デフォルトの名無しさん :2007/12/13(木) 22:00:22
..とか~とかカレントディレクトリからの相対パスとかを正規化して絶対パスにしくれるステキ関数ありますか? /usr/local/suteki.exeに実行ファイルがあるとして suteki("aaa") は /usr/local/aaa suteki("../aaa") は /usr/aaa にしてくれる関数を探してます
330 :
328 :2007/12/14(金) 00:33:08
>>329 GLOB_TILDEを使うとホームディレクトリは展開してくれるのですが.とか..を展開してくれません><
realpathでいいじゃん
332 :
328 :2007/12/14(金) 01:38:32
>>331 おおおお まさしくこれです
ありがとうございます
これでx−window動かしたいんですけど 手順教えてください。
すみませんでした
336 :
デフォルトの名無しさん :2007/12/18(火) 13:44:38
http://www.mingw.org/MinGWiki/index.php/mingw%20hosted%20cross%20compiler を参考にしてクロスコンパイラを生成しようとしていますが、問題が2つ出てきました。
環境はbuild-system = host-system = i386-pc-mingw32でtarget-system = arm-unknwon-elf (arm7tdmi)です。
1.本当に成功したのかわからない(Build and installing the c compiler)
サイトにはmkfixinc.shをi?86-*-mingw32*からi?86-*-armにしろと書いてありましたが、
fixincでmakeエラーになったのでarm-*-elf*に変更してやったらmake installまで成功しました。
しかし、インストール先のフォルダを見ると直下のincludeフォルダが空になっています。
fixincはどうやら、includeファイルを生成するもののようなのですが、これは成功なのでしょうか?
以下スクリプトを一部書き換えたところです。
$SRCDIR/configure \
--with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=arm-elf --with-cpu=arm7tdmi
-with-newlib --prefix=$prefix --enable-threads --disable-nls --enable-languages=c,c++
--disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj
--disable-java-awt --without-x --disable-libgcj-debug --enable-interpreter
--enable-hash-synchronization --enable-libstdcxx-debug 2>&1 | tee
gcc_configure.log
make all-gcc CFLAGS="-O2 -pipe" CXXFLAGS="-O2 -pipe" LDFLAGS=-s | tee
make-c-only.log 2>&1
成功するがインストール先フォルダ直下のincludeフォルダは空になっている。
2は次をご覧ください。
337 :
デフォルトの名無しさん :2007/12/18(火) 13:49:41
2.newlibのmakeが失敗する
これも
>>336 で言ったサイト(Building and installing newlib)を参考にしています。
そのシェルスクリプトをそのまま実行しました。
しかしmakeでエラーになってしまいます。
make[3]: Entering directory
`/home/(UserName)/build/arm-elf/ARM7TDMI/newlib/etc'
/C/msys/1.0/home/(UserName)/newlib-1.15.0/missing
makeinfo --split-size=5000000 --split-size=5000000 --no-split -I/C/msys/1.0/home/(UserName)/newlib-1.15.0/etc
-o standards.info
/C/msys/1.0/home/(UserName)/newlib-1.15.0/etc/standards.texi
WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.
make[3]: *** [standards.info] Error 1
make[3]: Leaving directory
`/home/(UserName)/build/arm-elf/ARM7TDMI/newlib/etc'
make[2]: *** [info] Error 1
make[2]: Leaving directory
`/home/(UserName)/build/arm-elf/ARM7TDMI/newlib/etc'
make[1]: *** [all-etc] Error 2
make[1]: Leaving directory `/home/(UserName)/build/arm-elf/ARM7TDMI/newlib'
make: *** [all] Error 2
WARNINGに書かれているようにTexInfoを
http://sourceforge.net/project/showfiles.php?group_id=2435 からダウンロードしてインストールしても変わりませんでした。どうかよろしくお願いします。
339 :
sage :2007/12/18(火) 16:43:26
>>328 さん、ありがとうございます。早速試してみたいと思います。
340 :
sage :2007/12/18(火) 16:43:54
341 :
337 :2007/12/19(水) 11:41:12
>>338 さんから教えていただいたシェルスクリプトで、c compilerのインストールまでは
完了したのですが、newlibのmakeで
>>337 と同じくエラーになってしまいました。
newlibをMinGW(WinXP)のmakeの方法を知ってらっしゃる方、よろしくお願いします。
342 :
デフォルトの名無しさん :2007/12/19(水) 17:18:00
dllからのC++例外をexe側で捕捉できないでしかもhangupするのは仕様ですか? dllとexeはともにcygwinのg++で作ったものです ちなみに例外のthrowとcatchがexeで完結してるならちゃんと捕捉できます
344 :
デフォルトの名無しさん :2007/12/22(土) 10:35:01
MinGW使ったんだけどsys/ioctl.hとかのヘッダーがないけど、 これってMinGWがまだ不完全だからってこと? それともどっかに落ちてるのを適当に拾って入れればいいの?
wikiから >MinGWの名称はMinimalist GNU for Windows(Windowsのための最小限度の >GNUの意)を表わす。 >CygwinはLinuxや他のUNIXシステムに見られるような、Windows上に完全な >POSIX層を提供することを目標にしており、互換性のために必要であれば性能も >犠牲にしている。一方でMinGWはフリーのコンパイラと各種ツールのみを行い、 >性能を重視している。 >MinGWはPOSIX APIを提供していないので、Cygwinでコンパイル可能だが >MinGWでは可能で無いUnixアプリケーションが存在する。
つまり、ioctl使いたかったらcygwin使っとけってこと。
347 :
デフォルトの名無しさん :2007/12/24(月) 11:04:13
http://sourceforge.net/project/showfiles.php?group_id=2435 SourceForgeのMinGWダウンロードのところのソースファイルをダウンロードして自分でmake installしようとしたんだけど、
makeで必ず失敗する。
WinXPでMinGW環境だとだめってこと?
なんでMinGWのダウンロードのところにあるのにmakeができないの?俺だけ?
i386用のバイナリがあるからそれ使えっていうのもわかるけど、
ちょっとバージョンの新しいのを入れたいからmakeしようとしたら全然だめ。
確認のため、今すでにMinGW版としてあるやつのソースもmakeしたら全然だめ。具体的にはTexInfoね。
これどうゆうこと?
エラーメッセージが理解できるようになってから来てください
349 :
デフォルトの名無しさん :2007/12/24(月) 11:51:51
エラーメッセージくらいわかってるよ。 でもMinGWにはないヘッダーとか使ってるソースがMinGWにあるんだぜ? しかもバイナリ形式もあるんだぜ? おかしくない? それとも俺が何か入れ忘れてるの?
入れ忘れてんじゃネーの? makeに必要な環境がなかったらmakeは通らんだろ。
> でもMinGWにはないヘッダーとか使ってるソースがMinGWにあるんだぜ? なにも不自然な点は見受けられないんだが
「環境を構築するための資源」と、「環境を利用するための資源」は違うんだぜ。
353 :
デフォルトの名無しさん :2007/12/24(月) 13:07:03
それってどっかからライブラリなりヘッダーなりを調達する必要があるときはあるってこと? それってMinGW用とかじゃなくて適当なところから持ってきて適当に追加すんの? 具体例とかあるとわかりやすくてうれしいんだが。
適当ってなんだよ適当って。 MinGW側でパッチが必要なものはMinGW側に置いてあるだろうし、 置いてないものはGNUサイトとかミラーからでも拾って来ればいいだろう常識的に考えて。
README.devとINSTALL.genericは読んだのか? configureはちゃんと通ってるのか? 根本的に、スキルが足りないんじゃないのか?
356 :
デフォルトの名無しさん :2007/12/24(月) 15:13:53
すまん。もしかしてmsysDVLPRを入れてなかったからなのか? とりあえずやってみるが、うまくいかなかったらフォローしてくれ。
357 :
デフォルトの名無しさん :2007/12/24(月) 17:24:42
358 :
デフォルトの名無しさん :2007/12/24(月) 17:26:34
それと適当に入れてbashのmakeをINSTALL.MSYSにならってしてみたんだが、cc1.exeが-fnative-structというオプションがわからんとか言ってエラーになった。 やっぱり環境構築がおかしいんだろうか。詳しい人たのむ。
あのさ、一々アゲて「俺、ソースmake初挑戦日記」書くの止めてくんないかな。 そういうのは、mixiでやってくれ。冬休みに入ったのはわかったから。
>>347 TexInfoのロケールの問題で引っかかってるんじゃない?
以前俺がBuildしたときは、それでエラーになってた。
そんときは LC_ALL=C でBuildしたら通った。
361 :
デフォルトの名無しさん :2007/12/25(火) 12:12:18
>>360 すまん。今MinGW/MSYS環境を作り直してるところでそのレベルに行ってない。
昨日適当な環境でTexInfo4.9をmakeしてみたんだがinclude/pwd.hの65行目がおかしいとかいって終了した。
今は正しい環境づくりのため、
>>357 であげたサイトを調べてる。
正直英語は辛い。訳も半分ぐらいしたが、なんかあやしげ。
msysDVLPRってmsysとmsysDTKをインストールしたあとにそのインストールしたフォルダに入れればいいんだろうか?
それともmsysDVLPRだけでいいんだろうか?
訳してみるとmsysDVLPRだけっぽいんだが、実際としてはmsysインストールしてから追加インストールするものだと思う。
TexInfoとかのビルドが成功した人はどんな風にMSYS環境を作ったのか教えてほしい。
>>361 基本的にはMSYSとmsysDTK入れただけだな。
あとは msys用bisonとflex入れた程度
mingwはlibiconv入れた
363 :
デフォルトの名無しさん :2007/12/25(火) 13:06:24
>>362 環境はWinXP?
俺はMinGW Download pageにあるTexInfo4.11すらビルド失敗。
364 :
デフォルトの名無しさん :2007/12/25(火) 14:48:20
mingwのgccのmingw-local patchesって何処にあるの?
>>363 うん。 WinXP
TexInfoのBuildは、いろいろ入れないとできなかった気がするんで、
うちはバイナリをダウンロードしてきて入れた。
TexInfo入れずに configureしてBuildできなかったっけ?
このTexInfo関係はドキュメント作成するのに必要なだけなんでスキップしても
問題ないんだけどね。
366 :
デフォルトの名無しさん :2007/12/25(火) 16:04:10
>>365 うん。俺もドキュメントだから関係ないと思ったけど、
やっぱりみんなが(外人とか)当たり前にビルドしてるのに
できないのが、なんか納得いかなくてな。
それにTexInfoのバージョンあげないと、他のツールをビルドするときにMakefileとかを
強制的に書き換えないといけないのが、なんか嫌だったんだ。
とりあえず今はbashのMinGW Download pageにおいてあるやつをビルドしようと思ってるんだが、
INSTALL.MSYSとか読むと
http://www.mingw.org/MinGWiki/index.php/MSYSBuildEnvironment が必要らしんだな。でも英語得意じゃないからそれっぽくやってみてもうまくいかないし。
正直もうお手上げ状態だ。英語をちゃんと理解できればいいんだがな。愚痴っぽくなってすまん。
mingwにあるtexinfo-4.11は adaのgnat_ugn__unw.texiでエラーでるんでtexinfo-4.8使ってるんだが これは正常なの?
368 :
デフォルトの名無しさん :2007/12/26(水) 14:17:32
誰か頼むからWinXPでMinGW5.13とMSYS1.0.10とmsysDTK-1.0.1入れてbash3.1のソースとか をビルドできるか試してくれ。 俺はできないと思う。 msysDVLPRも入れてみたがだめだった。えろい人たのむ。
とりあえずあきらめて悟りを開くかCygwinに乗り換えるかしれ。 立てよ国民!gcc -mno-cygwin!!
いや俺はあきらめたくない。 mingw-usersとかのメーリングリスト見てるとみんな当たり前にやってんだぜ。 英語が苦手なだけでMinGWを利用できないなんて悔しくてやだ。 でも解決策はわからん。
どこの中二病患者?
英語もダメ。スキルもない。出来ないと暴れる。最悪だな。
>>370 そろそろウザイって言われてることにさっさと気づけよ、邪魔なんだよ。
お前らだってできねーんだろ?
煽っても無駄なのにね
>>368 なんでUNIX系シェルとか依存性の強い物をBuildしようとするかな・・・
たぶんMingw用のglibcヘッダとかライブラリが必要だと思うよ。
たしかどっかにあったはず。
あと binutilとかバグがあるバージョンもあるから、そのあたりも変えてみたら。
binutilは上記のものとかなくてもbuildできるはず。
ごめんな。感情的になってしまった。
確かに俺は頭悪いが、
>>368 みたいに親切なやつもいるから
またがんばるよ。
いみふめい
>>379 どのツールのビルドした?
あとmsysDVLPRだが、以下に書く手順であってるか知りたい。
MinGW5.13、msys1.10.11、msysDTKをインストーラからインストール。
msysDVLPRをtar -zxvf msysDVLPR-1.0.0-alpha-1.tar.gzでmsys/1.0直下から展開。
それと.profileを
if [ $MSYSTEM == MINGW32 ]; then
export PATH=".:/usr/local/bin:/bin:$PATH"
else
export PATH=".:/msys/bin:/usr/local/bin:/bin:$PATH"
fi
といじって、そのごmsysdvlprシェルを起動して白いmsysコンソールからビルド。
違うところがあったら教えてくれ。
はっきり言ってチョーウザイ。 日記はmixiでやれって言ってんの。 おまいには無理、それでいいだろ。
>>382 念のために書いておくけど、ちゃんと
./configure
してからmakeしてるよな?
まぁ基本的なことだから大丈夫だとは思うが。
それから msysDVLPRを MinGW5.13の上に上書きするのはちとマズいかもな。
msysDVLPRにも gcc及びライブラリが入ってるから。
もちコース。./configure、make、make installぐらいは知ってるぜ。 msysDVLPRはmsysの方に入れてるんだがこれって間違い? MinGWiki読むとmsysの方に解凍してるみたいだが。
でもbashのビルドはINSTALL.MSYSにしたがって、一応msysrlsbldっていうスクリプトやってるけどな。 中身は結局configure、makeみたいな感じだ。
387 :
デフォルトの名無しさん :2007/12/28(金) 23:45:45
Mingwでソケットを使おうとしたら使えない! インクルードファイルがみあたらないのですがなんででしょう・・・。
MinGWなんだからwinsock使えよ…
基本的過ぎる質問だと思うのですが 検索してもわからなかったので書き込ませて頂きます cygwinのgccを使ってC,やC++の開発を行うときのライブラリは やはりcygwinのそれっぽいのをとってくるんでしょうか? それとも別のIDEからライブラリ部分を持ってきたりするんでしょうか? windows.h 関係が欲しいのですが 通常はどこで手に入れるものなんでしょう?
w32api
>>390 ありがとうございます。適当に必要なものとどこからでも良いので
とってくればOKなんでしょうか?
とりあえずcppunitとw32api(3.9-1)をcygwinのsetup.exeからインストールしたんですが
cygwin\lib\w32api 配下に windows.h が存在せず
どこから手に入れればよいのか困っています
「普通はここから持ってくる」そんな場所はありますか?
どんなオプションを選んだかなんて覚えていないけど、 特に何もしなくても<windows.h>をインクルードできるし、 特にライブラリ指定しなくてもWin32 API使えている。
$ find /usr/include -name windows.h /usr/include/w32api/windows.h
>>391 はなんでヘッダファイルをlib配下でのみ探したのだろう
395 :
389 :2007/12/30(日) 17:38:53
>>392 何が違うんでしょうか…? 俺にはさっぱりです
>>393-394 それは
>>389 がアホだからに他ならないわけで…。
…ありがとうございました
わからなかったのでPSDK入れようとしてました。
結局こんな感じでコンパイルしたら動きました
g++ test.cpp -I/usr/include -I/usr/include/mingw -v
includeされているパスが色々出てきて
それらがどこで設定されてるのかがイマイチわかっていませんが
おいおい調べていくことにします
>>395 /usr/include と /usr/include/mingw を一緒に使うのはどうかと思う…
ってかこの辺は解り難いとこなんだけど cygwin の gcc には使うlibcに応じて
2つモードがあるんよ.
- cygwinの提供するPOSIX APIを使う通常の cygwin のモード
- POSIX の API を使わずに Win32 API だけを使ってプログラムを書くための MinGW モード
gcc に -mno-cygwin オプションを付けると後者のモードになって /usr/include/mingw
ってのはその場合に使われるヘッダが入ってるのね。なので両方参照する必要はないはずなのよ?
それぞれのメリットやデメリットは…まぁ適当にぐぐってくださいね。
397 :
389 :2007/12/30(日) 19:07:24
>>396 なるほど解説ありがとうございます。
初めに /usr/include だけを使った所 windows.h が読み込めて
その後に #include <tchar.h> する必要があったので /usr/include/mingw を読み込んでました。
/usr/include/mingw のみ -I すればコンパイルできました。
-mno-cygwin をつけるだけでもOKなのも確認しました。
クロスコンパイルやらなんやらの問題みたいですね。
とりあえず色々眺めてみることにします
>397 POSIX API を使うつもりがなくいなら -mno-cygwin を付けた方が cygwin1.dll をリンクしないでいい分ライセンスとかいろいろ楽。 作りたいアプリケーションに応じて選んでくれ。
POSIX APIを使わないつもりがなくいときはどうしたらいいでしょう。
gccでデバッグオプション(-g -O0)を付けてコンパイルしたいのですが、 いったいどうやればいいのでしょうか? いまのところはMakefile.amのINCLUDE変数に'-g -O0'を追加しているのですが、 明らかにおかしいので正しいやりかたを教えていただきたいのです。 環境はubuntu + gcc + autotoolsです。 (Linux板も探したのですが、適当なスレが見つけられなかったため こちらに質問させていただきます)
大抵のMakefileなら、CFLAGS辺りに書けばよさそうだが。
autotool なら環境変数から引っ張ってきてるよね CFLAGS="$CFLAGS -g -O0" ./configure 俺はこうして使ってるけど
>>400 この場合 Autoconf/Automake/Libtool スレあたりが適切かな…?
>>401 そうですよね
>>402 CFLAGS="$CFLAGS -g -O0" ./configure
のやりかたでできました。
ありがとうございました。
>>403 すいません。次から気を付けたいと思います。
よくあるのは configure に --enable-debug 付けると デバッグオプションが付くように作ってあるとかかなぁ
wxWidgetsをリンクするために 'wx-config --cppflags'の出力されたものを 作成ファイルのMakefile.am内オプションに追加したいのですが いったいどうやればいいのですか? 何度か同じことをする必要があるので 共通の変数か何かに設定できるとうれしいのですが。 (他のスレでも聞いたのですが、全く反応が無いのでマルポしています)
>>406 wc-config の出力結果を Makefile.am に書いたら意味ないだろw
configure.in を書いて configure 実行時に wc-config を実行してその結果
がMakefileの変数CXXFLAGSやLIBSに展開されるようにしてやればいいんじゃね?
あと autotools の使い方を基本から勉強しなおしてくれ。
そもそも autotoolize する必要があるのかってところから見直すといいかもしれん。
408 :
407 :2008/01/01(火) 20:43:27
wc-configってなんだ… wx-config ね
>407 ありがとうございます。 > Makefileの変数CXXFLAGSやLIBSに展開されるようにして これはいったいどうやればいいのでしょうか? configure.inに WXCXXFLAGS = 'wx-config --cppflags' AC_SUBST(WXCXXFLAGS) とやってもなしのつぶてで全く効果がありません。 あとautotoolsに関してなのですが、自分はもともとVCを使っていて linuxでコンパイルする必要が出てきたので最近になってautotoolsを使い始めました。 なので残念ながらautotoolsをほとんど知りません。 これを使っているのは、いろいろなプロジェクトで configureファイルを見かけるからなのですが これを使わないとしたら他にどのようなツールが考えられますか? 自分はmakeをそのまま使うかbjamなどが思いつくのですが、 どれを選ぶにしろ大変そうで困っています。 ある程度ポータブルで分かり易いツールであればなんでもいいのですが、 良さそうなものがあれば紹介して頂きたいくらいです。 ちなみに、このプロジェクトのコンパイルに必要な手順は 1、プロジェクトに添付された(小さめの)外部ライブラリのソースからスタティックライブラリを生成 (この際、wxWidgetsが必要になるものもあります) 2、それらとライブラリのソースから一つのダイナミックライブラリを生成 3、最後に、メインプログラム(というかテストプログラム)をDLLをリンクして生成 と少し複雑です。
他のスレでもって、wxスレでもautoconfスレでも見かけなかったなぁ まぁ別にどこでもいいんだけど
>>411 基本的には
Windows(cygwin), Linux, FreeBSD, Mac
あたりで使えれば嬉しいのですが。
あまりマイナーな環境に対応するのは大変ですしね。
いい環境が見つかるまでは、マニュアルと本でがんばりたいと思います。
WXCXXFLAGS="`wx-config --cppflags`" ・・・ではないのかな 試してないけど 俺なら AC_PATH_PROG で wx-config あるかチェックするかな
>>413 ありがとうございます。ただ、それでもダメでした。
(
>>409 のWXCXXFLAGSはWXCPPFLAGSの間違いでした。すみません)
Makefile.inを見ると変数自体はちゃんと出力されているのですが
その中身がどうも空のようです。
Makefile.amではどちらか分からないので
一応@WXCPPFLAGS@と$(WXCPPFLAGS)の両方の形式で出力させています。
415 :
414 :2008/01/02(水) 16:27:37
>>415 configure.ac の中身
WXCPPFLAGS=`wx-config --cppflags`
- 変数と'='の間にスペースは入れない
- 展開はバッククォート
普段UNIXライクOS使ってないならアレだがシェルスクリプトの基本を勉強する必要があるかも
>>415 そうそう Makefile.am の方は @WXCPPFLAGS@ でよくて $(WXCPPFLAGS) はいらない
>>416-417 できました!
やっとコンパイルに取りかかれそうです。
ありがとうございました。
419 :
デフォルトの名無しさん :2008/01/04(金) 07:52:12
>>418 Net BeansIDE V6 R3を実装し、C/C++コンポーネントのアドイン指定をし、
Cygwin言語処系gmake,g++,gcc等をインストールし、 Net BeansIDEを起動
することにより、自動でビルド環境が出来るじゃん。
まあ、autoconf automake の勉強するつもりならこんなやり方は為にならんが。
まあ、学生さんだったら時間あって勉強がてらハンドでやるのも良いんだろうけどw
よく考えたら、正月だったのか。じゃあ時間作れそうだな。
420 :
419 :2008/01/04(金) 07:58:25
>>419 本人はVC使ってて他の環境(LinuxやFreeBSD)で容易にコンパイルできるように
autotoolize してるって書いてあるだろ…
そこで Cygwin + NetBeans 勧めても…
422 :
デフォルトの名無しさん :2008/01/04(金) 21:04:54
>>421 奨めないとPGままだろ?
ソフトウェア開発技術者とPGは違うぞ。
コンポーネントプログラミングの妙技も味わって貰わないとなw
423 :
デフォルトの名無しさん :2008/01/04(金) 21:21:17
>>421 autotoolizeって何?
スペルミスするくらいならオーソライズって書けよw
>>423 autoconf/automake 使って
./configure && make all && make install
って, やればインストール出来るようになってる
という意味ではないのか?
425 :
デフォルトの名無しさん :2008/01/04(金) 21:45:50
>>424 個人の造語を空想で断定しては恥かくだろう?
俺はレスの文脈からオーソライズと認識したまで。
何ならそのスペルで英和辞典なりコンピュータ用語事典を
探して見たら良い。
一生掛かっても見っからないことは断言できる。
ま、そんなチンケな話で揉めても仕方ないのでここで
ペンを置く。
うるせーよググれカス
>>425 レスの文脈からautotool-izeとしか認識できなかったがな。
オーソライズってのはauthorizeのことか?だとしても意味が通らんな
もっと文脈読まないと恥かくぞ?
>>417 その情報は古い。
Makefile.amでは、$(WXCPPFLAGS)と書くのが今風です。
Makefile.inでよきに計らってくれるので。
そうすると、$ make WXCPPFLAGS="-I/anotherdir/include"
なんかが使えます。
429 :
デフォルトの名無しさん :2008/01/04(金) 22:13:26
>>427 ふふ、暇なオジンやな?
本件にレスして道ズレにしようちゅう魂胆かなw
まあ、おまえが口べただと言うことは良く解った。ググった上でのレスだw
>>426
冬休み学生のへたくそな煽りにわざわざ釣られるなよ…
>>423 これほど「プギャー(AAry」を貼りたくなったレスは初めて見た希ガス。
432 :
デフォルトの名無しさん :2008/01/05(土) 01:06:06
世代間ギャップだろw
434 :
デフォルトの名無しさん :2008/01/05(土) 02:27:02
↑この粘着馬鹿きも
お前も十分粘着だよ。
ageてる人はわかりやすくて良いな
4+3=7
438 :
デフォルトの名無しさん :2008/01/05(土) 17:53:22
新年から運営バイト乙 さくらも必要だからな2ちゃんにはw 車 寅二郎
To you cotton I dead no death she.
最近気づいたんだけど、速いCPUでCygwinのgcc使ってコンパイルするより、 遅いCPUでLinuxのgcc使ってコンパイルしたほうが速いのね・・・ 体感的にはCygwin@X2 3800+ < Linux@CelD 2.4GHz, Cygwin@CelD 2.4GHz < Linux@P3 900MHzくらい -pipeつけたらちょっとマシになったけど、それでもやっと同じくらい。 やっぱstat(2)とかが効いてるのかね?
Windowsはプロセスの起動が遅いうえに Cygwinでエミュレートまでしてるからかなり遅くなると思うよ
cygwinと比較してる時点でバイアス満載。
443 :
デフォルトの名無しさん :2008/01/06(日) 12:14:27
MinGW使え
普通は、fgetc()をループで回してもfgets()やfread()を使っても(I/O速度で制限されるので)大差ない時間で処理できるが、 cygwinに限っては、fgetc()版は遥かに遅くなってしまうからね。
なんで?
エミュレートしているからでしょ。
それはfgetcが遅くてfreadが遅くない理由にならなくね?
448 :
デフォルトの名無しさん :2008/01/06(日) 19:02:11
cygwinはファイルの読み書きは特に重いよね。MinGWにすると凄い速くなる。
>>447 freadも遅いがエミュレート+ループでfgetcが遥かに遅い理由にならなくね?
fread()一回では、エミュレートのオーバーヘッドは1回分であることが期待できる。 多くても、BUFSIZごとに1回だろう。 fgetc()では、毎回の呼び出しごとにオーバーヘッドが発生する懸念がある。 ungetc()のために毎回余計に読み込まなくてはいけないと言う事情がこれに拍車を掛けるだろう。
そゆのってオーバーヘッドのかからない層で バッファリングすると思うんだけど・・・。
いや、そうじゃないからこそ、cygwinのエミュレーションは問題だといっている。
MinGWのgccやg++は、標準ヘッダの検索パスをどこで決めているんでしょ? c:\mingwにインストールしたときはbinのpathを通すだけでコンパイルできたソースが、 j:\!repos\softwares\mingwにインストールしたときはbinのpathを通すだけだと、 no include path in which to search for stdio.hとか言われる。 C_INCLUDE_PATHやCPLUS_INCLUDE_PATHを設定すればいいみたいだけど・・・。
455 :
デフォルトの名無しさん :2008/01/06(日) 22:19:31
>>451 ソースを読んでどこが悪いとか具体的に確信を持って言ってる?
なんか勘違いしてる気が…
そのへんを計測してみた人どこかにいないかな
なんかどっかのスレでも書いた気がするけど 俺のVista(HPx64)でMSYSちゃんが上手く動いてくれない
459 :
デフォルトの名無しさん :2008/01/07(月) 10:14:15
XPならHomeでもおk
MSYS1.0.10に1.0.11の何か上書きしたらイケましたわ。
461 :
デフォルトの名無しさん :2008/01/07(月) 13:00:45
使いもしないツールを多く含んだメタボ気味なコンパイラ使うより いいかもね
少しスレ違いかもしれませんが質問させてください。 環境は、 MinGW 5.1.3 MSYS 1.0.10 自前のC++ソースをビルドしようとすると、 こんな感じのシンボル未定義のメッセージが並んでリンクエラーになります。 foo.cpp:(.gnu.linkonce.t._ZNK11foo16hogeERKSt6vectorIdSaIdEEj+0x14a) : undefined reference to `_cxa_begin_catch' nmで見るとlibstdc++.aが必要なようですが、-lでばっちり指定しています。 ./libstdc++.a:eh_catch.o:00000000 T ___cxa_begin_catch ./libsupc++.a:eh_catch.o:00000000 T ___cxa_begin_catch 何が原因なんでしょう。。打つ手なしっす。
-lの方が先に指定されていたりはしないよね?
464 :
462 :2008/01/09(水) 01:08:24
>>463 -lstdc++を一番後ろに置いてます。
not foundが出るわけではないのでライブラリは見つけてるはずなのですが、、
コンパイラのインストールからやり直すべきなのでしょうか?
g++コマンドでリンクすりゃ、libstdc++を明示する必要はないはずだが。(勝手にリンカに適切なオプション渡してくれる)
>>465 一度g++に切り替えて試したときもlstdc++を付けたままで、まったく同じエラーが出ました。
早速明日外してやってみます。
>>462 アンダースコアの数が違うからリンクできるように見えない。
マップファイルとかアセンブリのソースとか確認しないとわかんないね。
バージョンが合ってないとか
470 :
デフォルトの名無しさん :2008/01/13(日) 16:32:21
UACが有効なVistaでcygwin使うとき、sudoみたいに管理者権限を動的に(必要なときに)与えるようにしたいんです。 ここで間違えないで欲しいのは、実行したユーザーが属するAdministratorsが保有するACL管理下の権限であって、Administratorの強制執行権限ではありません。 引数をコマンドとして実行するだけのプログラムにマニフェストを組み込んでもcygwinから実行するとNo permissionでキャンセルされます。 runasではadministratorでの実行は可能ですが、条件に合いません。 何かいい方法は無いでしょうか?
VisualStudio, gcc, vim, Cygwinで開発しています。 MinGWというのは使ったことがあるのですが、メリットがよく分かりませんでした。 上記の開発ツールに加えてMinGWも使うとしたときのメリットにどんなものがありますか?
Cygwinというのは苦肉の策であって、 例えばパス名の区切りがスラッシュになるなど、環境との親和性に問題がある。 VisualStudioはアクチがあり、法外に高額で、 かといってラーニングやスタンダードはライセンスにいろんな制約がある。 ただしカネがあるなら最適化他の面で圧倒的に有利だ。 gccってNTリソースパックのgcc? NTのPOSIXサブシステム用はOSの汎用性がない。 MingWは完成度さえ高ければ素晴らしいのだがw ハローワールドで数メガとか恐ろしいことになったりするw
474 :
471 :2008/01/13(日) 22:58:52
>>472 ありがとうございます。
Win32を使ったアプリを作らないせいか、環境とし親和性はあまり意識いたことないです。
やはり、Win32APIを使うと問題になってきますか。
VS Express 2005のフリー版を使っています。
gccはCygwin上のgccです。
>>473 リンクありがとうございます。
> VSとcygwin上のgccとvimを併用してると解釈します。
そうです。わかりにくくてすみません。
> しかし、cygwinにmingwが包括されています
それは初耳です。cygwinを使っていれば、mingwと同じかそれ以上の
ことが出来るということですか。
> cygwinはmingwに比べwindowsシステムとの互換性が低い(パスとか)ので
> windows向けの開発であれば避けた方がいいかもしれません。
windows向けの開発をする予定があるので、今からVSを使って慣れておこうかと思っている次第です。
windows向けであればcygwinよりmingwがいいんですか。
あるいは、windows向けであればビジネス的にはVSが圧倒的シェアかと思いますが、
個人的使用(趣味のプログラミング)であればVisualStudio2008などは高額で敷居が高いですね。
個人向けであれば、mingwが最適なのかなと思って、最近mingwが気になりだした次第です。
素直にVS使っとけ。どうせ2008も無償版が出るんだから。 POSIXを意識しないならWindows上でまでgcc使う必要はない。
>>472 ハローワールドで数メガとかならねーよw
# あ…Javaで書いてgcjでコンパイルとかしたらなるか
デバッグ情報てんこもりとか
[Test.java] public class Test { public static void main(String[] args) { System.out.println("Hello, world."); } } > gcj -O2 --main=Test -o test Test.java > ls -lh test.exe -rwxr-xr-x 1 hoge none 6.1M Jan 14 03:04 test.exe* > strip test.exe > ls -lh test.exe -rwxr-xr-x 1 hoge none 2.1M Jan 14 03:06 test.exe* うはwww
>>471 VS と MinGW の両方でコンパイルできるコードが割と簡単に書けるところが MinGW のメリット。
MinGW では基本的に Win32 API を使う。
スレッド、WinSock2、DLL のロードなどは Win32 API を利用するので
VS 用と MinGW 用のコードの差分は小さくなることが多い。
コンパイラ依存の部分を #ifdef で分ければ大半のコードを共用できる。
Cygwin は使ったこと無いのでパス。
逆に、cygwinだとWinSockを使わないでソケット周りを書けるのが魅力。 要は、Linuxと同じソースでいける可能性が高い。
>>474 windows用のソースをwindows用にコンパイルするのがmingw、勿論VSも
linux用のソースをwindows用にコンパイルするのがcygwinのgcc
cygwinでもwindows用のソースをコンパイルする事はできます、そこで使われているのがmingw
このcygwinのmingwが本家と同一なのかどうなのかはよく知りませんが。
gcc --target-help の最初の10行程を見てみてください、参考になるかと思います。
一部のファイルをインクルードすると failure to convert cp932 to UTF-8 というエラーが発生するんですが これは何が原因なんでしょう? 別のエディタで文字コードをUTF-8にして保存しても直りませんでした
改行コードかも
いやまじであるぜ? 改行コード
>>482 「一部のファイル」ってのを明確すると話が早かったりするかも。
boostだったりしない?
487 :
本田 :2008/01/17(木) 17:40:38
>COMプログラマの解説書
>Crispin Goswell
>Microsoft Office Product Unit
>1995年 春
>1995年9月13日改訂
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdncomp/htm/com_co.asp >抄録
>この解説書は、
>Microsoft(r) OLE Component Object Model(COM)オブジェクトを作成し、
>効果的に使用する方法を説明しています。
>例文はほとんどCで書かれていますので、実際に何が行われているかが、大変分かりやすく示されています。
>プログラマの中には、オブジェクトを実行するためにC++を好んで使用する人もいるでしょう。
>C++プログラマの観点からCOMの概念および基本的な使用法を論じているのは
>Kraig Brockschmidt著のInside OLE (第2版)(MSDN Library(Books))です。
>COMとは何か、またその設計や哲学の後ろにある動機付けをより理解する事に興味がある読者なら、
>Component Object Model Specification(MSDN Library(Specifications))の最初の2章を読んでください。
>第1章には簡単なイントロダクションを、第2章では徹底的に概要を解説してあります。
>この解説書ではInside OLEとCOM Specificationにある情報を、
>COMオブジェクトを実装する良い方法をいくつか示しながら解説するようにしてあります。
>>482 input-charset を CP932 として使っていながら、欧州由来のコードで
CP932的に不正なものを含むソースをコンパイルしたんだと思う。
ffmpegの何かのヘッダとか。
489 :
デフォルトの名無しさん :2008/01/20(日) 14:26:15
エクスプローラーを使っているときに 今見ているフォルダでCgywin窓を開きたいのですが どうしたらいいですか?
アドレスバーからコピーして、cdすれば?
俺はこうしてる [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\WinHandPrompt] @="Zsh(&C)" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\WinHandPrompt\command] @="cmd.exe /F:on /K \"cd %L&&zsh\""
窓の手の流用か
あれ、なんでばれたんだろう? 、と思ったら書いてあったねハッキリと
MSYSからgetchとかkbhitを拾うのはどうしたらいい? コマンドプロンプトではできることが MSYSでは上手くいかないことが意外に多い printfは必ずfflushも書かないと表示されないし・・・(TT
毎回のようにfflushするくらいならsetvbufに_IOLBFしとけ。 で、getchやkbhitはC/C++にもPOSIXにも準拠していないし、Win32にも無い。 強いて言えば、DOSのデファクトスタンダードだったので残してある、というだけ。 Win32APIを使わないとするなら、 conio.hじゃなくてcursesとかを使うんじゃないの?知らないけど。
>>495 >printfは必ずfflushも書かないと表示されないし・・・(TT
リダイレクトする用途を考慮しなくていいなら、printf()ではなくfprintf(stderr, ...)したまえ。
498 :
デフォルトの名無しさん :2008/01/26(土) 15:58:13
いま操作しているPC(ネットワーク上でのコンピュータ名はPC1)のcygwin(以下cygwin1)から sshでほかのPC(ネットワーク上でのコンピュータ名はPC2)のcygwin(以下cygwin2)にログインして \\PC1\Shareにアクセスしようとすると"-bash: cd: \\yy-x60s\Share: Permission denied"と言われてしまいます cygwin2から直接"cd \\\\PC1\\Share"を実行するとこちらは成功します cygwin2で"setfacl -m user:SYSTEM:rwx \\\\PC1\\Share"を実行して 直後に"getfacl \\\\PC1\\Share"を実行すると # file: \\PC1\Share # owner: pc2user # group: なし user::rwx group::r-x other:r-x mask:rwx とでていて設定が反映されてないことが原因なような気がするのですが、どのように設定するばよいか分かりません
そういえばstderrはバッファリングされないからflushする必要もないよね
でなきゃ困るだろ.そもそも >printfは必ずfflushも書かないと表示されないし・・・(TT は,それが当たり前だということを知らずに泣いてるだけの話だろ
>>495-496 MSYS では、ってのは rxvt では、ってことだよね。
pdcurses の getch を使うプログラムを書いて試してみたけど rxvt ではダメっぽい。
LINES value must be >= 2 and <= -4096: got 1
initscr(): LINES=1 COLS=1: too small.
とか出てプログラムが異常終了する。
ググってみると lynx や aspell で同じ問題が起こっているみたい。
rxvt では (pd)curses は NG。
502 :
デフォルトの名無しさん :2008/01/30(水) 21:32:07
質問です。非常に初歩的ですみません。
ジョークコマンド sl を、Cygwin や その他 dll 等に依存しない、exeファイ
ル単体で動く形にコンパイルしたいのです。
http://chaosweb.complex.eng.hokudai.ac.jp/~hagi/contents/memo-cygwin.html#sl http://freethink.way-nifty.com/action/2006/06/gnuwin32_6362.html これらを参考に、Mingw、GnuWin32 をそれぞれフルインストールしました。
makefile の -lcurses と sl.c の usleep を書き換えました。
また、makefile を
CC=c:/mingw/bin/gcc.exe
と書き換えました。
そこから先が分かりません。
gnuwin32 のコマンドプロンプトから、makeを実行すると、以下のようなエラー
が出ます。
gcc -O -o sl sl.c -lpdcurses -ltermcap
sl.c:30:20: curses.h: No such file or directory
sl.c: In function `my_mvaddstr':
sl.c:42: error: `ERR' undeclared (first use in this function)
sl.c:42: error: (Each undeclared identifier is reported only once
...(略)
ということで質問です。GnuWin32 の termcap と pdcurses を、MinGW から利
用できるようにするには、どのように何を設定したらいいのでしょうか?
>>502 gcc の -I オプションで curses.h があるディレクトリを指定
504 :
502 :2008/01/30(水) 23:57:09
>>503 ありがとうございます。makefileのCFLAGSを以下のように修正したところ、
CFLAGS=-O -I "/Program Files/gnuwin32/include/"
一歩前進し、今度はこんなエラーが出るようになりました。
c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe:
cannot find -lpdcurses
collect2: ld returned 1 exit status
make: *** [sl] Error 1
今度はどこに何を設定したら良いでしょう?
1を聞いて10を知れ、とは言わないがちょっとな・・・
506 :
502 :2008/01/31(木) 00:46:02
ごめんなさい、図々しいお願いですね。 gcc の man を見ているのですが、ライブラリの検索パスを追加するオプショ ンが見つかりません。 また、C:\Program Files\gnuwin32 の下に pdcurses に相当するライブラリが あるのかと思ったのですが、libpdcurses.a というファイルが見つかりません。 行き詰ってしまいました。
-L でしょ?
508 :
502 :2008/01/31(木) 01:08:26
うわあ、これは恥ずかしい。申し訳ありません。 日本語manを"ライブラリ"で検索していたので見つかりませんでした。 c:\program files\gnuwin32\lib に pdcurses がなく、curses があったので、 Makefile を元に戻しました。 --- sl.c ---- /* usleep(20000); */ sleep(1); ここで今、こんなエラーが出ています。 c:\DOCUME~1\ユーザ名\LOCALS~1\Temp/ccGQbaaa.o:sl.c:(.text+0x1a4): undefined reference to `sleep' collect2: ld returned 1 exit status たぶん、正しいヘッダをインクルードすればいいと思うのですが。
>>508 > たぶん、正しいヘッダをインクルードすればいいと思うのですが。
そう思うんだったら、includeディレクトリの中でsleep()の宣言を探す
べきでしょ。たぶん無いけど。
510 :
502 :2008/01/31(木) 02:01:22
おっしゃるとおりです。見つかりませんでした。 /MinGw/include には何もなく、 /Program Files/gnuwin32/include には glibc/unistd.h に sleep() がありましたが、includeすると大量のエラー。 winx/timex.h に nanosleep() がありましたが、 undefined reference to `nanosleep' のエラーが出ます。 /cygwin/include でも見つからなかったので、どうも方針がまずいようです。 Cygwin 上だと何もせずにコンパイル、実行できましたので。 今日はいったん中止します。
このまま続けると嫌われるよ。 おそらく、初心者板の方が適している質問と思われ。 # -Iや-Lオプションなんて、cc時代から定番のオプションだし。 # CygwinやMinGWの問題か切り分けられて無いし。
512 :
502 :2008/01/31(木) 13:11:55
ごめんなさい、では最後に一点だけ。 /* usleep(20000); */ この行をコメントアウトすると、コンパイルは通るようになりました。まあ実 行すると、一瞬で終わってしまうのですが。 ただし、カレントディレクトリに curses2.dll を必要とします。exeファイル のみで実行できるようにならないでしょうか? 見よう見まねで gcc に -static オプションを付けてみましたが、大量にコン パイルエラーが出てしまいます。 c:\DOCUME~1\ユーザ名\LOCALS~1\Temp/ccy2baaa.o:sl.c:(.text+0x34): undefined reference to `_imp__stdscr' c:\DOCUME~1\ユーザ名\LOCALS~1\Temp/ccy2baaa.o:sl.c:(.text+0x4f): undefined reference to `imp( *) static' c:\DOCUME~1\ユーザ名\LOCALS~1\Temp/ccy2baaa.o:sl.c:(.text+0x6b): undefined reference to `_imp__stdscr'
>>512 そのpdcursesにスタティックリンク用のライブラリが添付されてない限
り、キミには無理。
514 :
502 :2008/01/31(木) 13:22:08
ありがとうございました。dllは諦めます。 あとはusleep(20000)ですが、これはどこか初心者スレを探して質問します。
515 :
502 :2008/01/31(木) 15:17:52
先ほどの者ですが、解決しました。 #include <windows.h> ... Sleep(20); Windowsプログラミングに詳しい知人にアドバイスされ、このように修正したと ころ、見事に動くようになりました。 どうもお騒がせしてすみませんでした。ありがとうございました。
最初からそいつに聞け糞が そいつはそいつで、掲示板で聞けようぜえ と思ってるだろうがな
「mingw sleep」でググるだけで、ヒントがたくさん出てくるんだけどなあ。
518 :
502 :2008/01/31(木) 18:53:51
ごめんなさい、訳があって急ぎだったので、無神経な質問をしてしまいました。 ご迷惑をおかけしました。 今度Java質問スレで、超初心者にていねいに答えますので、それで埋め合わせ にさせてください。
人に教えてる暇があったら勉強しろ
以上 >502 の日記からお伝えしました
Cygwinでcファイルをコンパイルしようとしたところ、 3[main] ? 26824 init cheap: Couldn't reserve 3600336 bytes of space for cygwin's heap, Win32 error 487 というエラーメッセージを4つ吐くのですが、解決策はありますでしょうか? ググってみて、再インストールもしてみたのですができませんでした… WinXP Home SP2 RAM DDR SDRAM 512MB
522 :
521 :2008/02/02(土) 08:38:29
すみません自己解決しました。 System32にCygwin1.dllがあったのが悪かったようです。
guileのinfoにある例(インタプリタを作るだけ)をmingwでコンパイルしたら sys/select.h ieeefp.h が無いと言われてしまいます。 確かに/includeにも/mingw/includeにもそんなファイルはありゃしませんが。 mingwじゃlibguileは使えないのでしょうか? バージョンは gcc: 3.4.2 guile: 1.8.2 です。
_____ ___ <ー、\\ヾiγ/rニミ \ヾヘヽヽリ川///γ >川/ ̄"""" ̄「リ (ヘir-=o=ッィ=o=j _ハ| `ー/ ii、i <\ ヽヽ `ー′/ \ヽ \  ̄ ̄/∩へ Cygwinじゃ駄目なのか? __ii  ̄/二ノ レ< guileのmakeに必要な環境やライブラリはあるのか? ヘヘヘ\ヽニ>-イ|( Y/) ノ// / ヽ_ノ|ヽハ/) ノ ̄ `ー | |ヒ/
>>524 試しにcygwinでやってみたら、gmpを入れてないのでハネられます。
まあ、gmp入れてcygwinでやればいいだけなんだろうけど。
主力環境がmingwなのでmingwでやりたいなと。
敗因は2つだ
-
>>525 は sys/select.h が何なのかわかってない
-
>>525 は mingw がどんな位置づけにあるものかもわかってない
guileを使うのにPOSIX環境である必然性があるのかな
ないと思うが…
では、mingwの位置づけ云々は関係ないような。 select.hを使わないようにconfigureできないものか。
>>529 mingwの位置付けが判っていたら当然そういう風に行動するだろ?
ってか guile をビルドの話なのか?
guile をビルドするときなら configure --disable-posix とかあった気がするが…
>>530 sourceforgeのmingw用にビルドされたguileをインスコしてlibguileまで一緒に入っているのにselectがないとかもうね、なんなんだと。
じゃあきっとそのlibguileは --disable-posix で作られてるんだろ?
>>532 guileの意義がわかんねーなら上から目線で語るなよwwww
Cygwinでgcovを使いたいのですが、 gccに-mno-cygwinのオプションを付けて実行すると以下のようなエラーが出ます。 test.gcda:Version mismatch - expected 304m got 304c -mno-cygwinを付けてgcovを使うことはできないのでしょうか? Cygwinのバージョンは1.5.25-7です。
536 :
デフォルトの名無しさん :2008/02/10(日) 03:15:32
Cygwin v2.573.2.2で開発しています。C++からperlを使おうと思って、とりあえず下のソースを拾ってきました。 #include <EXTERN.h> #include <perl.h> static PerlInterpreter *my_perl; void main () { char *perl[] = { "", "-e", "printf(\"%x\", 3735928559);" }; my_perl = perl_alloc (); perl_construct (my_perl); perl_parse (my_perl, NULL, 3, perl, (char **)NULL); perl_run (my_perl); perl_destruct (my_perl); perl_free (my_perl); } それを perl_sample.cpp という名前で保存し、 g++ perl_sample.cpp -I/lib/perl5/5.8/cygwin/CORE -L/lib/perl5/5.8/cygwin/CORE と、コンパイルしようとしました。しかし、 /cygdrive/c/Users/hoge/AppData/Local/Temp/ccwiKLdy.o:perl_sample.cpp:(.text+0x40): undefined reference to `_perl_lloc' /cygdrive/c/Users/hoge/AppData/Local/Temp/ccwiKLdy.o:perl_sample.cpp:(.text+0x52): undefined reference to `_perl_construct' /cygdrive/c/Users/hoge/AppData/Local/Temp/ccwiKLdy.o:perl_sample.cpp:(.text+0x7e): undefined reference to `_perl_parse' /cygdrive/c/Users/hoge/AppData/Local/Temp/ccwiKLdy.o:perl_sample.cpp:(.text+0x8b): undefined reference to `_perl_run' /cygdrive/c/Users/hoge/AppData/Local/Temp/ccwiKLdy.o:perl_sample.cpp:(.text+0x98): undefined reference to `_perl_destruct' /cygdrive/c/Users/hoge/AppData/Local/Temp/ccwiKLdy.o:perl_sample.cpp:(.text+0xa5): undefined reference to `_perl_free' collect2: ld returned 1 exit status と、エラーをはきます。perl自体はcygwinのインストール時に入れたものです。perlのlibが無いのかと思い、探しましたが見つからず、また、perlの最新版をコンパイルしようとしましたが失敗しました。ちなみにOSはVistaです。 どのようにすればコンパイルできるようになるのでしょうか?
>>536 ライブラリのサーチパスは指定しているけど、ライブラリそのものを指定していないじゃん。
>>537 Cygwinで-mno-cygwinを使う代わりに本物のMinGWを使うことで解決できました。
ありがとうございました。
540 :
デフォルトの名無しさん :2008/02/10(日) 13:45:20
>>538 ありがとうございました。無事コンパイルすることができ、実行もできました。
ckのソースどっかに落ちとらんかのー
ん? ck違い!? とりあえずサンクスコ
544 :
デフォルトの名無しさん :2008/02/23(土) 09:23:36
浮動小数点演算を行なうルーチンをコンソールアプリ(main関数)から呼んだときと
Win32 API で書いた GUI アプリから呼んだときとで計算結果が違うという問題に
悩まされています。どなたか解決策をご存じないでしょうか。
問題を再現する、できるだけ小さなプログラムを作りました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6078.zip 付属の Makefile は MinGW (GNU make)用です。
test1.exe(コンソールアプリ)と test2.exe(GUI アプリ)をビルドして実行します。
どちらも init.c の initialize() を呼び出します。
initialize() は double 型の配列 x を初期化する関数です。
計算結果を見るために x[5] と x[6] をカレントディレクトリの output.txt に書き出しています。
gcc version 3.4.5 (mingw special) では以下のようになりました。
test1.exe
x[5] = 4.7474747474747475e-001
x[6] = 4.6969696969696967e-001
test2.exe
x[5] = 4.7474747474747475e-001
x[6] = 4.6969696969696972e-001
同じルーチンを呼んでいるのに x[6] の値が異なります。x[5] は一致しています。
比較のために VC++ Toolkit 2003 (nmake.exe) 用の Makefile.vc も入れておきました。
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
でコンパイルしたところ2つのプログラムの計算結果が配列 x の全要素について一致しました。
MinGW (gcc) でコンパイルしたときの test2.exe の計算結果と一致しています。
すなわち test1.exe の計算結果がおかしいようです。
どなたか解決策をご存知の方がいらっしゃいましたらご教示下さい。よろしくお願いいたします。
面倒だからソースは見ていないけど、どちらかはFPUで計算を行いどちらかはSSEで計算を行なっていると思われる。 コンパイルオプションで強制できるから、必要なら強制すればいい。 但し、doubleの精度を超えた領域の話なのでどちらも間違っているとはいえない。
./test1 4.7474747474747475e-001 4.6969696969696967e-001 ./test2 4.7474747474747475e-001 4.6969696969696967e-001 gcc version 4.1.2 ごめん、役に立てそうも無いw とりあえずmap出力してdiff取ってみたらどうか
アセンブリ出力を見るだけだろ。常考
同じになっちまった。 .gcc version 3.4.5 (mingw special) /test1 cat output.txt 4.7474747474747475e-001 4.6969696969696967e-001 gcc -o test2.exe -mwindows test2.c init.o ./test2 cat output.txt 4.7474747474747475e-001 4.6969696969696967e-001 gccオプションに--save-temps しかし、同じ.oファイル使ってるから意味ないか。 fprintf(fp, "%hX\n", x[5]); fprintf(fp, "%hX\n", x[6]); これ出力しても結果異なるよね? まぁ、ollydbgあたりでステップ実行すれば原因はわかるかと思う。
そういえば、全然関係ない話だけど MinGWのprintfで、%hhXとかうまく機能しない原因知ってる人いない?
msのcランタイムがc99対応じゃないから
msのランタイムって、FPUの精度を固定していないか? >544はもう一回動かしてもtest1のx[6]は違う値のまま?
15桁目まで同じだからdoubleの精度としては問題ない。
553 :
549 :2008/02/23(土) 12:03:17
C99以前ではhhxって使えなかったんだ。 知らなかった。
x86のFPUは、80ビット精度と64ビット精度が存在する。
SSE2は64ビット精度。
とかそのへんの問題かな?
>>551 に一票。
浮動小数点演算の検算で精度気にしすぎると禿げるぞ。
ε使えε
テキストで出力すると計算の問題なのか出力関数の問題なのか分からんな。 バイナリで出力(あるいは16進ダンプ)してみて どうなるかチェックした方がいいと思う。 例えば fprintf(fp, "%.16e\n", x[5]); これを output(fp, x[5]); にして、output を別翻訳単位で下のように定義してみたらどう? void output(FILE *fp, double value) { union { double value; char array[sizeof (double)]; } dc = { value }; int i; for(i = 0; i < sizeof (double); ++i) { fprintf(fp, "%02X ", dc.array[i]); } fputchar('\n', fp); }
_controlfp あたりでぐぐれ
おー、それだそれだ、思い出した。
559 :
544 :2008/02/25(月) 14:04:07
皆さまコメントありがとうございました。
>>556-557 の方法で解決いたしました。
使用していた Windows 環境では MinGW でコンパイルしたコンソールアプリは 53 ビット、
MinGW でコンパイルした GUI アプリと VC++ Toolkit 2003 でコンパイルした両アプリは
64 ビットの演算精度を用いていたようです。
別の Windows 環境で試したところ MinGW でも両アプリとも同じ計算結果になりました。
コンソールアプリを MinGW でコンパイルすると演算精度が 53 ビットになる環境がある、
確実を期すなら _controlfp を使え、ということですね。
髪がすこし減ってしまった気がします。本当にありがとうございました。
つーか、doubleの精度以上の処を云々すると禿げるよ。 どうせ微小誤差が付き纏うんだから適当な桁で丸めて表示するとかしないと。
561 :
544 :2008/02/25(月) 15:57:08
>>560 おっしゃる通りです。
今回の件が気になってしまったのは、シミュレーションコードのデバッグ中だったためです。
実行環境やコンパイラが違ったら気にしないところですが、同じ環境で同じオブジェクトコードに
同じ入力データを与えているにも関わらず計算結果が違うことにとまどってしまいました。
原因はdoubleの範囲を越えた部分の誤差でしたが、この問題を調べるきっかけになった
シミュレーション結果の違いはもっと有意な差だったので看過できませんでした。
育毛にはげみます。
562 :
554 :2008/02/25(月) 21:54:36
>>561 > シミュレーション結果の違いはもっと有意な差だったので
俺は予言する
もまいは禿げる。
肝心のアルゴリズム、あるいはテストベクタが草ってんじゃない?
>>561 IEEEに準拠するように80bitではなく強制64bitにするオプションがあったはずだが
そんなあなたを禿増してあげましょう
OS再インスコしてdevcpp+SDLで以前のソースコンパイルしたらWinMain@16なエラーが('A`) int main(ryから始めてるし-mwindowsも付けてるのに cygwinでもインスコすれば変わるかなあ
-lSDLmain付け忘れ&-l順番ミスでしたサーセン SDL外したらコンパイル通って、sdl-config見てやっと思い出した
相談じゃなくて雑談になるんだけど g++4.3.0をビルドしてみたんだけど、g++のbinが460,475ってでかくね? cygwinのインストーラからのg++3.4.4は96,789、verうpとかモジュール化とか考えてもねぇ。 とか思いながら動作テストで↓コンパイルしたら、2,339,843、メガってどうなの。(ちなみに3.4.4でも477,682、g++4.3.0binよりでけぇ #include <iostream> int main(){return0;} これって一体何がバイナリに組み込まれてるのか気になるんだけど、分かる人教えてー、誘導だけでもいいから。 ちなみに#include<iostream>だけ消したら3.4.4が7,673、4.3.0が10,915と小さくなった。(勿論gccじゃなくてg++で
stripしろよ ライブラリのdebug infoもな
なるほど、どうもー。
g++ 普通にビルドできるのか? それならなんで Cygwin のパッケージは 3.4 のままいっこうに動かないんだろう。
そのうち、stripしてもまだサイズがでかいがどうしてだ? といった ググれば5秒で分かるFAQを聞きに戻ってきそうだ
嫌味だけは一丁前でな
>>572 できたよー
そういや俺も昔クロスコンパイラ作ろうとしたけどビルド出来なかった覚えがあるな
そんときは原因分からず仕舞いやったけど
cygwinのパッケージはlinuxでビルドされてるらしいから3.4で動かない原因は別なんじゃない?
Windows XP SP2 上で Cygwin gcc 3.4.4 の MinGW モードで開発してるんですが、 システムメニューの項目を EnableMenuItem() を使ってグレーアウトさせようとしてもできません。 具体的には、ウィンドウプロシージャで WM_CREATE を受け取ったとき EnableMenuItem(GetSystemMenu(hWnd, FALSE), SC_MOVE, MF_GRAYED); としても、システムメニューの「移動」がグレーアウトせず、有効なままになってしまいます(実際にウィンドウ移動もできる)。 MF_GRAYED を MF_DISABLED にしても同様で、システムメニューからウィンドウ移動ができてしまいます。 DeleteMenu(GetSystemMenu(hWnd, FALSE), SC_MOVE, MF_BYCOMMAND); ならば正常に機能し、項目が削除されるんですが…。 似たような環境で EnableMenuItem() によるシステムメニュー項目のグレーアウトができている方がいれば 方法など教えていただけないでしょうか?
すみません。追記です。 EnableMenuItem(GetSystemMenu(hWnd, FALSE), SC_CLOSE, MF_GRAYED); は正常に機能し、システムメニューの「閉じる」とタイトルバーの×ボタンがグレーアウトするようです。 となると「移動」とか「サイズ変更」がグレーアウト/無効化できないのは Windows API 自体の仕様なんですかね? もしそうだったらスルーしてください。Cygwin + MinGW 環境固有の問題かと早合点してしまったので。
>>578 スレ違いの質問にお答えいただいて恐縮です。
仰る通り WM_INITMENU を受け取ったときに設定することで「移動」「サイズ変更」もグレーアウトさせることができました。
ただし、WM_INITMENU メッセージでは wParam に対象メニューハンドルが格納されるらしいのですが、
システムメニューに関してはこれは当てはまらないようです。なので、
if(wParam == (WPARAM)GetSystemMenu(hWnd, FALSE)){
...
}
などとすると if 文の中身は決して実行されないようです。
よって、システムメニューを設定するだけなら wParam は無視すべき、ということみたいです。
WM_INITMENUPOPUPなら見分けがつくんでない?
>>580 アドバイスありがとうございます。やってみましたが、
if(HIWORD(lParam) == 1){
...
}
というテストはうまくいくものの、wParam にはシステムメニューのハンドルが入っていないようです。
ですので、EnableMenuItem() などに渡すメニューハンドルはやはり GetSystemMenu() を使って自前で取得しなければ
ならないようです。
また、WM_INITMENUPOPUP を受け取ったときに EnableMenuItem() を呼ぶと、タイトルバーから初めてシステムメニュー
を呼び出したとき、システムメニューの表示位置が若干上にずれて、タイトルバーを覆い隠すような形で出てくるようです。
まあ2回目以降は正常に戻るので、気にするほどのことではないかもしれないですが…。
あと、WM_INITMENU の場合は対象がシステムメニューかどうか見分けが付かないので、自分で初回スイッチのような
ものを用意して対処する必要がありそうですね。
それと、さっき色々試していて気が付いたのですが、WM_INITMENU または WM_INITMENUPOPUP を受け取ったときに
EnableMenuItem() する方法だと、タスクバーを初めて右クリックしたときに項目が無効にならないようです。
2回目以降、もしくは初回であっても事前にタイトルバーからシステムメニューを表示させていれば EnableMenuItem()
の設定が反映されるんですが…。
調べてみたところ、タスクバーが右クリックされたときには非公開メッセージ 0x313 が送られてくるとの情報があったので、
(参考:
http://www.hey-to.net/ML-archive/vcppML/1999/msg03694.html )
0x313 を捕捉し、そのハンドラで EnableMenuItem() などの設定を行い、
さらに DefWindowProc() にメッセージを処理させればよい…みたいです。
>>576 の環境でしかテストしていないのであまり自信がないですが、これだと一応タスクバー初回右クリック時も正しく
項目が無効化されたシステムメニューが表示されます。
とはいえ、非公開メッセージに依存するのも微妙な感じなので、いっそ WM_CREATE のハンドラで無効にしたい項目を
DeleteMenu() してしまうのが一番簡単かもしれないですね。
長文失礼しました。Windows って難しいです。
>>581 Win32 API スレいって揉まれてくるといい
583 :
デフォルトの名無しさん :2008/04/01(火) 13:51:30
cygwinでopenmpは使える??
584 :
デフォルトの名無しさん :2008/04/01(火) 18:57:24
>>581 これじゃダメなんかい?
DWORD dwStyle = GetWindowLong(hWnd, GWL_STYLE) & ~WS_SIZEBOX;
SetWindowLong(hWnd, GWL_STYLE, dwStyle);
585 :
デフォルトの名無しさん :2008/04/03(木) 15:23:40
windows2k MinGW を入れたいのです MinGWインストーラがネット無いので使えません ソースフォージからどれを落とせば良いでしょうか またそれは全て同じフォルダに上書きで良いでしょうか binフォルダなどかぶっているものがおおいんです 使いたいのはC、C++、SDL、OpenGLです パスは適当に通そうと思っています
MinGWインストーラはDownload Onlyを選べば、落とすだけを選択できるぞ あとは上書きで桶
>>586 おおありがとう!
じゃあ遠かったHelloWorldも近づきますノシッ
ちょっとお聞きしたいのですが、mingwでは-Iオプションは使えないのでしょうか? g++ --help でリストに出てこないのです。 しかしg++ -I とすると argument to `-I' missing のような感じで、unrecognize option `-j' みたいな感じではでてこないので、使えるような気もするのですが・・
591 :
588 :2008/04/11(金) 15:00:25
>>588 さん
>>580 さん
レスありがとうございます。
使えるのですか。
-I使う場合は、Windows用に
-IC:\Program Files\...
みたいな感じで書けばよいのでしょうか?
上記の感じでやってみたのですが、うまくいかなく・・
592 :
588 :2008/04/11(金) 15:01:37
>>591 パスにスペースを含む場合は "" で囲むと聞いたことがあるけど
-I"C:\Program Files\..." ではだめかな
分割されなきゃいいのだから、空白をエスケープするだけでもいいかも。 それはさて、ディレクトリ区切りのバックスラッシュってエスケープする必要あるんでない?
スラッシュにした方がいいな -l"C:/Program files/..." ていうか相対パス指定できるように環境を整えた方が のちのち便利だと思う
レス下さった方々、ありがとうございます。 -l"C:/Program files/..." こんな感じでとりあえず目的のコンパイルはできるようになりました。多謝です。 相対パス指定のための環境構築について、検索してみたのですが、それっぽいのが出てきませんでした。 スレ違いで申し訳ないのですが、よろしければどなたか解説してるサイト教えて頂けると幸いです。
msysかcygwinをいれちゃう。 あなたならおそらくmsysのほうがおすすめ。 ふと思ったがmingw単体で使ってる人ってけっこういるんだろうか。
>>598 俺々、俺だよ
msysはgccのsnapshotをコンパイルするときくらいしか使ってない
601 :
デフォルトの名無しさん :2008/04/11(金) 22:17:04
msysはUNIX系用に書かれたアプリをWindows環境で makeや./configureするためだけにあるようなもんだから 純粋なWindowsアプリ作るときは、いらんだろ。 それともWindowsアプリ書くときも、mv や cp や sh コマンドを使うヤツがおるのか?
そこまで使うような奴だったらCygwinを入れているだろうしな。
603 :
597 :2008/04/11(金) 23:26:58
レスありがとうございますー。 なるほど、msysからなら相対パスで指定できたのですか。 実はmsysは導入してるんですが、今コンパイルしようとしてるソースがeclipseのプロジェクトのもので、 eclipseのbuildセッティングからオプション指定しなければいけないが気がするのです。 eclipseからのオプション指定付きのコンパイルは、絶対パスでですが成功したのでとりあえず解決しました。 eclipseからも相対パスで指定できたら便利なのかもしれませんが、スレ違いなのでここではやめておきます。 色々ご教示くださりありがとうございましたm(_ _)m
よく分からないんだが、prefix を適当なマクロ名(たとえばSRC_DIR)で定義しておいて -I"$SRC_DIR/include" とか書けばいい、という話? Makefile内ではダブルクオートで囲んであってもマクロ展開が行なわれる。 ダブルクオート付きのまま実行されるので SRC_DIR=C:/Program Files/GnuWin32 のように スペースを含んでいても無問題。
605 :
デフォルトの名無しさん :2008/04/12(土) 15:21:51
>>601-602 俺はWindows環境でMinGWを使ってプログラムを書くときはいつも
Makefileを書いてるからmsysがないと不便かもー。
exe単体(dll不要)で実行できるのがMinGWのいいところだから
俺的には MinGW + msys = Cygwin ではない。
>605 -mno-cygwin つければ cygwin1.dll 使わなくなるんだから、MinGW + msys ⊂ Cygwin とか混ぜっ返してみる。
607 :
デフォルトの名無しさん :2008/04/12(土) 17:58:19
全く混ぜっ返せてない気がするのは気の所為だろうか。
609 :
デフォルトの名無しさん :2008/04/12(土) 23:38:33
なぜそこでnmakeがでてくるんだ?
知ってる。 人に非ずな美人な子供で同性愛者な上にマザコンな皇子でしょ?
知ってる。 突然びっくりするぐらいブチ切れる人でしょ
知ってる。 100万人が同時にしゃべっても聞き分けられた人でしょ
それってさ 聖徳太子が聞き分けられてる と気づいた人のほうが数段上だよね
みんなして同じことしかいってなかったんだよね
MinGWに付いているwindres.exeは windres --language=0411 ファイル名.rc とすればShift-JISのrcファイルを読めるけど、UTF-16のrcファイルは読めますか? languageオプションに指定できる値の情報がどこにも無くて、UTF-16に対応してるかどうか分からない… (ちなみにVC9のrc.exeは文字コードを自動判定してるようでShift-JISもUTF-16もオプションなしで読めるみたい)
G++でのコンパイルやリンク実行時に自分で作ったバッチファイルを引数として噛ませたいのですが、どのように書けばできますでしょうか?? どなたかご教示頂けると幸いです。
> G++でのコンパイルやリンク実行時に自分で作ったバッチファイルを引数として噛ませたい 詳しく
621 :
619 :2008/04/14(月) 18:35:55
すいません、Windowsのコマンドラインから使う場合の話です。
>>620 さん
レスありがとうございます。
例えば、
g++ sample.o -lC:/aa.. -lC:/bb.. -lC:/cc.. -lC:/dd..
のようにインクルードファイルを呼び出してリンクしたいとき、
-lC:/aa.. 以下を毎回打つのは面倒なので、inc.batのようなバッチファイルにまとめてしまい
G++ sample.o inc.bat
のような感じでリンクできるようにしたいのですが、
上のような書式では失敗するので、inc.batの前になにか必要なのかな??という疑問です。
つMakefile
623 :
619 :2008/04/14(月) 19:05:56
レスありがとうございます。 すいません、makefileがどんなものかは大体分かっているのです。 今回はバッチでどうしてもやりたい事情がありまして・・
環境変数使うってのは?
もしくは、$1とかでファイル名渡すとか?
>>623 SET CXX=B:\MinGW\bin\g++
SET CFLAGS=-IB:\hoge\include -IB:\fuga\include
SET LDFLAGS=-LB:\hoge\lib -LB:\fuga\lib -lhoge -lfuga
%CXX% %CFLAGS% %LDFLAGS% %*
みたいなのをmygcc.batに保存して
> mygcc sample.cc
でコンパイル。オプションとかは適当に追加してくれ。
バッチファイルも書けなくてC++でプログラム書けるのかが心配だが…
627 :
デフォルトの名無しさん :2008/04/14(月) 22:31:52
>>619 ふつうにバッチファイルじゃいかんの?
unko.bat の中身はこう書く
g++ %* -lC:/aa.. -lC:/bb.. -lC:/cc.. -lC:/dd..
で、コンパイルはこう
C> unko sample.o
これも事情があってダメなの?
628 :
619 :2008/04/14(月) 22:55:52
レスありがとうございます。 なるほど、バッチの中にg++も入れたりできるんですね。 ただ、それだとやっぱりだめで、事情っていうのが、wxWidgetsっていうGUIツールキットを使っていて、それを使ったリンク時に g++ sample.o -LC:/wx/(以下略)... みたいにするんですが、どうもWindows版だと g++ -LC:/wx/(以下略)... sample.o みたいに、オプションがインプットファイルより前にくるとエラーになるみたいなんです。 makefileを使わないと言っても、eclispeのexcutableプロジェクトなので、makefileは勝手に生成される=使っています。 勝手に生成されるので自由には編集できない、ってことです。 で、そのmakefileのオプションの部分だけをバッチにしたいんです。 直接全部手書きでもよいのですが、かなり長いのでスマートじゃないなぁと思いまして・・ >>バッチファイルも書けなくてC++でプログラム書けるのかが心配だが… 初心者なので大目に見てください(^^;) 環境変数ってのはなんの環境変数でしょうか??
>>628 eclipseにコンパイル、リンクオプションを設定するところがあるはずだから探せ。
-LC:/... とリンク先ディレクトリ指定のオプションだけのように見えるが、本当はリンクするライブラリもその「バッチ」とやらに書いてるだろ。
それだと.oより先にあったらダメだ。
それはwindowsだろうがなんだろうがダメ。
.oから呼ばれている関数をリストアップして、その後その関数をライブラリからワンパスで探すから。
>>628 >>627 を試してみたのか?
バッチに渡した引数は %* の位置に展開されるのよ?
>なるほど、バッチの中にg++も入れたりできるんですね。
とかいう時点でバッチが何か理解してないと思われ
野球で振り回すあれでしょ?
>>630 バッチってバッチファイルのことじゃなくて、ライブラリのファイル名を羅列したファイルのつもりなんだろう。
チラシの裏 MinGWでコモンコントロール使うなら #define _WIN32_IE 0x0300 とか必須
チラシの裏 ncurses5.6 cygncurses-8.dll 文字化け 日本語 → use_legacy_coding(2) 追加
635 :
デフォルトの名無しさん :2008/04/15(火) 10:11:30
EIPに入ってるアドレスから共有ライブラリやEXEのベースアドレスを調べたいのですが windowsのPSAPIを使うやりかたで良いのでしょうか? cygwinではこう書くみたいなやりかたはありますか?
Win32環境にCygwinかMinGWのどちらかを入れようと迷っているのですが、 何か判断基準になるものはありますか?
両方入れて、自分で比較した方がいいんじゃないの?
基本MinGWでいいと思う 別の用途でCygwin使ってる人はそのままCygwinを使う
CygwinはUnix環境として使うなら便利だけど、窓の開発したいだけなら開発環境に組み込まれてたりするMinGWのほうがいいんじゃね?
640 :
628 :2008/04/16(水) 23:44:28
レス下さった方々ありがとうございますm(_ _)m
お礼遅れてすいません。
>>lipseにコンパイル、リンクオプションを設定するところがあるはずだから探せ。
オプション設定するところあるのですが、-mwindowsというのを設定しなくてはいけなくて、それ用のフォームがなくて困ってたのですが、全部まとめてかけるところが見つかってそっちに書くことで解決しました。
>>/... とリンク先ディレクトリ指定のオプションだけのように見えるが、本当はリンクするライブラリもその「バッチ」とやらに書いてるだろ。
その通りです!
>>それだと.oより先にあったらダメだ。
それはwindowsだろうがなんだろうがダメ。
.oから呼ばれている関数をリストアップして、その後その関数をライブラリからワンパスで探すから。
そうだったんですか!知りませんでした。貴重な情報ありがとうございます。
>>627 を試してみたのか?
バッチに渡した引数は %* の位置に展開されるのよ?
これも知りませんでした汗
そうだったのですか。なるほど!
ありがとうございます。
>>バッチってバッチファイルのことじゃなくて、ライブラリのファイル名を羅列したファイルのつもりなんだろう。
そんな感じです(^^;)
>>MinGWでコモンコントロール使うなら
>>#define _WIN32_IE 0x0300
>>とか必須
>>ncurses5.6 cygncurses-8.dll 文字化け 日本語
>>→ use_legacy_coding(2) 追加
ありがとうございます!
>>640 %* や、バッチファイルのその他の機能の説明を読んだ方がよさそう。
Windowsの「スタート」ボタン→「ヘルプとサポート」
→検索窓に「バッチ」と入力して検索→「バッチ パラメータを使用する」
→検索窓に「シェル」と入力して検索 →「コマンド シェルの概要」
1.cygwin.batから起動したbash上で「ls --color」を実行→color表示。うっわ見づらいなコレ 2.「ls」を実行→あれ、color表示のままだぞ? 3.「ls --color=none」を実行→うむ、color表示じゃなくなった 4.「ls」を実行→あれ、やっぱcolor表示のままだぞ・・・? 5.「source ~/.bashrc」を実行後、「ls」を実行→よし、今度こそcolor表示じゃなくなった 6.「exit」を実行後、cygwin.batからbashを起動し「ls」を実行→ひいい、color表示のままだぞ!? 7.(´・ω・`) *cygwin.bat---------- @echo off C: chdir C:\cygwin\bin bash --login -i *.bashrc(インスト時に手を加えたところだけ抜粋)------ export JLESSCHARSET=japanese-sjis alias ls="ls -F --color=none --show-control-chars" export LANG=ja_JP.SJIS 他のCygwinプロセスは起動してません。 .bashrcをちゃんと読んでない気がするのですが、lsのデフォルト動作を非カラー表示に 戻す方法をご教授いただければ幸いです。
>>642 alias 打って実際の登録状況を見るとか。
set -x して実際に起動されたプロセスの引数を確認するとか。
>>643 このalias内容から、
>>642 でも書いてるように.bashrcを読んでないと
思ったんですがねえ・・・どこから読んできたのやら
$ alias
alias ls='ls --show-control-chars --color -F'
alias mc='. /usr/share/mc/bin/mc-wrapper.sh'
$ set -x
(なし)
.bashrcに echo hello とか入れてみれば読まれてるかどうか分かるんじゃ?
646 :
デフォルトの名無しさん :2008/04/18(金) 08:55:12
startxfce4のログ
/usr/bin/startxfce4: Starting X server
(中略)
_XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root
winValidateArgs - g_iNumScreens: 1 iMaxConsecutiveScreen: 1
(II) XF86Config is not supported
(II) See
http://x.cygwin.com/docs/faq/cygwin-x-faq.html for more information
winDetectSupportedEngines - Windows NT/2000/XP
winDetectSupportedEngines - DirectDraw installed
winDetectSupportedEngines - DirectDraw4 installed
winDetectSupportedEngines - Returning, supported engines 00000007
winSetEngine - Using Shadow DirectDraw NonLocking
winAdjustVideoModeShadowDDNL - Using Windows display depth of 32 bits per pixel
winFinishScreenInitFB - Masks: 00ff0000 0000ff00 000000ff
(中略)
Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/100dpi/, removing from list!
winPointerWarpCursor - Discarding first warp: 836 512
winProcEstablishConnection - Hello
winProcEstablishConnection - Clipboard is not enabled, returning.
Agent pid 2492
xscreensaver: 09:01:36: locking is disabled (running as root).
xscreensaver: 09:01:36: locking only works when xscreensaver is launched
by a normal, non-privileged user (e.g., not "root".)
See the manual for details.
FreeFontPath: FPE "/usr/X11R6/lib/X11/fonts/misc/" refcount is 2, should be 1; fixing.
# ここで下記URLのような何もない画面とXのカーソル(×印)が表示されて停止
#
http://img224.echo.cx/img224/5445/cygwin5bh.jpg
650 :
デフォルトの名無しさん :2008/04/20(日) 22:10:32
>650 必要なパッケージが足りてない。 -mno-cygwin が使いたい場合、gcc-core だけじゃなくて gcc-mingw-core も必要。
都合でMinGWを使いたいんだけど、Cygwin導入済みのWindowsに入れたら競合が起こるかな CygwinパッケージにもMinGWがあった気がするけど、両方とも干渉せずスタンドアロンで使いたいっす
>>652 cygwinでmingwのコマンド類のある場所にパス通したりしなければ問題ない。
うちは普通に cygwin と mingw + MSYS が両方入ってる。
655 :
デフォルトの名無しさん :2008/04/26(土) 15:13:24
libtoolがスタティックライブラリは作るのですがdllを作ってくれません >< /bin/sh ..//libtool --quiet --mode=link gcc -no-undefined -L/home/myname/install//lib -rpath /home/myname/install/lib -version-info 25:5:0 -export-symbols-regex '^ne_[^_]' -o libneon.la ne_request.lo ne_session.lo ne_basic.lo ne_string.lo ne_uri.lo ne_dates.lo ne_alloc.lo ne_md5.lo ne_utils.lo ne_socket.lo ne_auth.lo ne_redirect.lo ne_compress.lo ne_207.lo ne_xml.lo ne_props.lo ne_locks.lo ne_xmlreq.lo ne_acl.lo ne_openssl.lo -lssl -lcrypto -lz -L/home/myname/install/lib -lxml2 -lz -lm が実行されると *** Warning: linker path does not have real file for library -lssl.... *** using a file magic. Last file checked: /home/myname/install/lib/libssl.dll.a *** Warning: linker path does not have real file for library -lcrypto.... *** using a file magic. Last file checked: /home/myname/install/lib/libcrypto.dll.a *** Warning: linker path does not have real file for library -lz.... *** using a file magic. Last file checked: /lib/libz.dll.a *** The inter-library dependencies that have been dropped here will be *** automatically added whenever a program is linked with this library *** or is declared to -dlopen it. *** Since this library must not contain undefined symbols, *** because either the platform does not support them or *** it was explicitly requested with -no-undefined, *** libtool will only create a static version of it. といわれます ssl、crypto、zはaファイルのみでlaファイルがないためリンクが失敗してると思います configureし直して、この三つのライブラリがリンクされないようにしたらdllが出力され Since this library must not contain undefined symbols...も出なくなったのですが aファイルしかないライブラリをlaファイル捏造とか以外の方法(オプションとか環境変数とか)で libtoolによるリンクを成功させるにはどのようにすればよいでしょうか?
laファイル捏造が嫌なら libtool 自体を書き換えるしかないと思うが。
657 :
デフォルトの名無しさん :2008/05/04(日) 16:29:31
>>657 gccにはそういうオプションなどなかったと思うけど、
gcc -S でアセンブリソースを出して、
オレオレas でオブジェクトを作って、
オレオレld でリンクすればいいだけ。
specsのinvoke_asとlinker書き換えて -specs= で読ませりゃいいんでない?
高速に質の良さそうな乱数を取得する方法を探しております。 「Mersenne Twister」というのに行き当たったのですが、もっと高速なものを探していたところ、 「/dev/rand」というものがあるというのを知りました。 下記に関し日本語サイト探しているんですが、なかなか詳しいところが見つけられません。 1./dev/randとはハードか何かで乱数作るんでしょうか? 2./dev/randはWindowsで使うことは出来ますか? また使い方は?
661 :
デフォルトの名無しさん :2008/05/06(火) 12:26:41
乱数スレで質問すれば誰か詳しい人がいるかもしれないよ
>>661 そうですか。
ただマルチになると申し訳ないので、2〜3日寝かしてレス付かないようなら移動しますね。
>>657 -B prefix と -b target ジャマイカ?
>>660 もうすっかり忘れたけどrand()は線型合同法かなんかだっけ?
メルセンヌツイスタを見つけたならひと口に乱数と言っても
目的によって適不適があるというような注意書きを
メルセンヌツイスタの作者が書いてるのに行き当たったり
しているはずだが。
>>662 取り下げによる移動はマルチではない。
移動の方法としてはいくつか在るがたとえば
ここに、「〜〜(移動先URL)へ移動しました」などと書いたうえで
移動先に「〜〜(ここのURLとレス番)から誘導を頂きました」
とでも書いておけばその時点でマルチではなくなる。
666 :
デフォルトの名無しさん :2008/05/06(火) 16:06:09
乱数スレの住人ってバカばっかりだからなぁ
>>660 > 高速に質の良さそうな乱数を取得する方法を探しております。
目的を述べよ
> 1./dev/randとはハードか何かで乱数作るんでしょうか?
割り込み間隔とかネットワークのIO間隔等で乱数 seed を揺さぶり続けるため
品質的にはそれなりだが, 再現性のある乱数系列を取得することは不可能
> 2./dev/randはWindowsで使うことは出来ますか?
/dev/rand に相当するデバイスドライバを書けば OK
> また使い方は?
fd = open("/dev/rand", O_RDONLY);
read(fd, random_buff, sizeof random_buff);
668 :
デフォルトの名無しさん :2008/05/06(火) 16:44:44
> /dev/rand に相当するデバイスドライバを書けば OK ほら。もう、バカばっかり・・・
670 :
デフォルトの名無しさん :2008/05/06(火) 23:01:34
作ればできるよ。ああできるよ。何だってできるよ、作れば。
671 :
デフォルトの名無しさん :2008/05/06(火) 23:51:01
作らんでもエイリアス張るだけちゃうん
WindowsにEGD移植されてないんだっけ?
すいません、MinGWにUTF-8を認識させるようにしたいのですが、そこらへん設定するにはどうすればよいでしょうか?? どなたか教えて頂けると幸いです。
>>674 MinGWに認識させるとは?
gccのオプション指定で入力エンコードと出力エンコードを指定するって話なら判るんだけど。
676 :
674 :2008/05/07(水) 16:47:30
レスありがとうございます。 >> gccのオプション指定で入力エンコードと出力エンコードを指定するって話なら判るんだけど。 分かりにくくてすいません、そんな感じのことを言いたかったのでした。 コンパイル時のオプションで設定できたんですか。 調べたら --input-charset, --exec-charset など、出てきました。 ありがとうございましたm(_ _)m
不完全な質問にヒント程度のエスパー回答、そして解決報告 素晴らしい流れに心が洗われるようだ
x64対応はまだかね?
681 :
デフォルトの名無しさん :2008/05/09(金) 13:17:06
MinGWでのコンパイルってこの方法であってますよね? コマンドプロンプトで、chdir ソースファイルが保存してあるディレクトリまでの絶対パスまたは相対パス そしたら ソースファイルが保存してあるディレクトリまでのパス>gcc ソースファイル.C -o ソースファイル.exe これでコンパイルしてもエラーでるからコンパイルの方法が悪いのかなって思ったんだけどさ ソースファイルは本通りに入力したはずだからあってるはず。 もうプログラミング挫折しそうです。
エラーを貼り付けないと回答のしようがない。 コマンドライン慣れてないならVisual C++ 2008 Express Editionや Eclipse CDT使うのも手。
683 :
デフォルトの名無しさん :2008/05/09(金) 13:34:32
すいません
>>681 の通りに入力して
gcc: installation problem, cannot exec `cc1plus': No such file or directory
と表示されます。
目的がプログラミングの学習で、 英語が全く分からない&英語を勉強する気はない なら VC++ 使った方がいい。
686 :
デフォルトの名無しさん :2008/05/09(金) 15:22:57
ありがとうございます。 VC++ってC言語でもつかえるんですか?
使えるよ でもスレ違い
688 :
デフォルトの名無しさん :2008/05/09(金) 15:35:34
おぉ そうなんですか!! スレ違いになりますね;; みなさんありがとうございました。 VC++で頑張ってみます
華麗にスルーされた俺カワイソス
690 :
デフォルトの名無しさん :2008/05/09(金) 16:23:16
大丈夫か?初心者にVCなんか勧めて。 どうせ今度は sprintf_s、strcpys、strcat_s・・・ でつまづくだろ。 オレなら Borland C++ Compiler を薦める。
gcc(ry
その前に日本語
mallocのインターポジショニングがしたいのですが 以下のようにやってもうまくいきません。 環境はWindowsVista+cygwinでgccは3.4.4です ---main.c--- #include <stdlib.h> #include <stdio.h> int main(void) { printf("start\n"); char* c = (char*)malloc(10); return 0; } ---malloc.c--- #include <stdlib.h> #include <stdio.h> void* malloc(size_t size) { printf("malloc\n"); return NULL; }
これを以下のようにコンパイルしました gcc -c -o testmalloc.o malloc.c gcc -o main.exe main.c testmalloc.o そして実行すると ./main.exe 4 [main] c 1924 sig_send: wait for sig_complete event failed, signal -34, rc 258, Win32 error 0 とエラーになります。そのあとにstartと表示されます。 どこがまずいのでしょうか?
>>694 main()に入る前にmalloc()が呼ばれることもあるので、そういうハリボ
テ実装ではダメ。
696 :
694 :2008/05/11(日) 04:02:19
>>695 さんありがとうございます。
ハリボテは駄目とのことなので、
置き換えたmallocの中で本物のmallocを呼ぼうとしたのですが、
やり方がわかりませんでした。
ためしに以下のようにしてみたのですが、駄目でした。
---malloc.c---
#include <stdlib.h>
#include <stdio.h>
static void* (*malloc_org) (size_t size);
__attribute__((constructor))
void save_malloc()
{
printf("save_malloc\n");
// 本物mallocを保存。
malloc_org = (void*(*)(size_t)) dlsym((void*)-1L, "malloc");
}
void* malloc(size_t size)
{
printf("malloc\n");
return malloc_org(size);
}
697 :
694 :2008/05/11(日) 04:05:44
gcc -c -o testmalloc.o malloc.c gcc -o main.exe main.c testmalloc.o ./main.exe ここで、save_mallocと出るよりも前に mallocと表示され、そこで前回と同じ症状となりました。 何かよい方法はないでしょうか?
Cygwinだよね? ソ ー ス 嫁 そうすれば malloc などの置き換えのために何をすればいいかわかってくる。 ただ、今回は malloc の書き直しが目標なのではないだろう? ヘッダ・ソースから内部構造体を調べて、ヒープヲークする程度で充分なんでは? > ここで、save_mallocと出るよりも前に > mallocと表示され、そこで前回と同じ症状となりました。 オリジナルの malloc を"セーブ"することには意味がないよ。 むしろ malloc_org が初期化されていない場面があるってことだから DLLから都度ポインタ得ても同じこと。 そして、DLL内部で完結している malloc を、この方法で 置き換えることは困難(つーか不可能)だ。 (たとえば strdup の内部 malloc 呼び出しをこの方法で乗っ取れるか どうか実験してみるといい)
699 :
デフォルトの名無しさん :2008/05/11(日) 13:03:46
動作確認してないけど、こんなのどう? ---main.c--- #include <stdlib.h> #include <stdio.h> void* (*unko) (size_t size); #define malloc unko int main(void) { printf("start\n"); char* c = (char*)malloc(10); return 0; } ---unko.c--- #include <stdlib.h> #include <stdio.h> void* unko(size_t size) { printf("malloc\n"); return malloc(size); }
既にCygwin環境があるWindowsで、「他者のCygwin環境でWindowsに移植されたソフトウェア」を実行しようとすると cygwin1.dllのバージョンの差異でエラー(fatal error - system shared memory version mismatch detected)が発生します。 既にCygwin環境があるWindowsで、それぞれが独立した形(スタンドアロン)として実行する最善の方法をご教授ください。
>>700 Cygwin のバージョンを合わせるしかないんじゃね?
MinGWで移植できないか考える
>>700 かたっぽのCygwin1.dll消すんじゃあかんの?
>>700 その他者の移植したソフトウェアと一緒に他者のCygwin環境のcygwin1.dllを貰ってきて
そっちがロードされるようにして起動すればいいんでない?
706 :
700 :2008/05/13(火) 02:54:02
具体例を書いておいたほうが良かったか・・・。質問やり直し。
ttp://blogs.windowsnetworking.com/wnadmin/2006/09/22/lighttpd-web-server/ こういうスタンドアロンで使う事を目的としたcygwin環境を含むソフトウェアを
CygwinがインストールされてるWindowsにインストールすると、ソフトウェア同梱のcygwin1.dllよりも先に
パスが通ってるディレクトリにあるcygwin1.dllを読みに行こうとします。
バージョンの差異で起動できないのは表示されるエラーメッセージで明白なので、
早い話パスが通ってるディレクトリにあるcygwin1.dllを、同梱されてるcygwin1.dllで上書きすればいいんですが、
ソフトを使うたびにファイルを入れ替えやらをしていたら、バイナリ配布がやり易いWindowsの特権がryという話です。
# そもそも、入れ替えするくらいならソースを持ってきてコンパイルした方が早い。
そこで、
>>705 にある「そっちがロードされるようにして起動」の部分が知りたいと思いました。
オープンソースの恩恵を受けてるユーザだと、結構ぶち当たる問題かと思い、こちらで質問しました。
物理的にDLLを入れ替える方法しかない場合は、大人しくソースからコンパイルしマス。
いやだから、お互いのCygwinのリビジョンを合わせればいいって話じゃないの?
>>700 .local とか .manifest を用意すればOK。
>>706 そのソフトってcygwinのシェルから起動するのか?
だとしたらパスの順番変えて付属のdllが先に見えるようにして起動すれば済む気がするけど…
そうじゃないとしたら普通にcygwinをインストールした場合cygwin1.dllのある
ディレクトリにパスが通ったりはしない(Windowsの環境変数の方のPATHね)からそんな
問題は起こらない気がする…
挑発しているのでもなんでもなく 残念だがvirtualboxを使って複数のOSをシームレスに同居させられる今 わざわざcygwinを使う意味がまったくわからない。 古い Win環境でもcygwin使うより快適だよ 試していないならやってみるべきだと思うな。
なるほど、仮想マシンに Linux 入れてクロスコンパイル用 のgccを用意してwin32用のバイナリを開発するということだな? 確かに快適だろうがその環境を作れるやつがどの程度いるのか… # ここは一応 GCC のスレらしいよ?
単にWindowsアプリケーションでPosixAPIを使いたいだけです
単にシームレスにUnix系ツールを使いたいだけです。
単にWin上でGCC系コンパイラーを使いたいだけです Cygは使ってませんし
それ全部このスレの話題だよな。
そもそもmsysってcygwinから派生したものだろ・・・
敢えてWindows Services for UNIX
CygwinもColinuxもSFUもWineも微妙… もっとwinとUNIXとが渾然一体になってるような ハイブリッドカーネルみたいなんは無いもんか……
もっと微妙になってしまいそうな気もするが…
cygwin1.dllはアッパーコンパチにして欲しいよ。マジで。
getrlimitのソースってどこにあるのでしょうか? glibcの中のgetrlimitは空実装でした。
今日gcc4.3をビルドして初めて使ってみたんだけど、 デフォルトで入ってるgcc3.4.4よりコンパイルが速いのね。
726 :
デフォルトの名無しさん :2008/06/02(月) 22:00:21
% alias ccgl 'cc -I/usr/X11R6/include \!* -L/usr/X11R6/lib -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm -lpthread' のようにしておけば、 % ccgl program.c だけでコンパイル出来るらしいのですが。bashで % alias ccgl='cc -I/usr/X11R6/include \!* -L/usr/X11R6/lib -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm -lpthread' のようにしてもできません。どこが問題なのでしょうか?
>>726 なんで「\!*」?「$@」じゃないの?
つーか、そんなへんなエイリアスつくってないで、Makefile書きましょう。
728 :
デフォルトの名無しさん :2008/06/02(月) 22:14:25
Makefile書けば済む話ではあるんですけど…。glutやらSDLやら 目的別にエイリアス作っとけば、ちょこっとした作業が楽になるかな と思ったんです
>>726 せめてワンライナーなaliasなんかじゃなくシェルスクリプトにすれば
記述の自由度があがってもっと便利なものも書けると思うんだが
何かaliasで定義しないといけない理由とかがある?
SDL知ってるなら、それに倣ってgl-configでも作っておけばいいんじゃない $ gcc `gl-config` hoge.c で済むようになるけど
731 :
デフォルトの名無しさん :2008/06/03(火) 10:13:59
>>729 理由は特にありません。
ただ、シェルスクリプトの使い方が良く分かってないのと、ファイルを
いちいち作りたくないとかです。
>>730 おお、すごくいい感じな気がします。こっちの方がいいですね
`sdl-config --cflags --libs`みたいなことですよね。これは、
どのような仕組みになっているのでしょうか?
Makefile一個書くのがそんなに嫌なのかな?
>>731 sdl-configの中身を読んでみましょう。
シェルスクリプトの書き方を習得しとくと、イロイロ便利だよ。
734 :
デフォルトの名無しさん :2008/06/03(火) 11:28:18
>>732 ちょこっとしたテスト用ののソースのためにわざわざMakefile書くのが嫌かもです。
リンクするライブラリが多かったりすると…
Makefile書くよりもコマンドの方が手軽かな、と私が勝手に思ってるだけです。
>>733 シェルは覚えたいですね。
>>734 もしかして、ソースファイルごとにMakefileが必要だと思っていない?
適当なMakefileを用意しておけば、例えばmake fooとするだけでfoo.cかfoo.cppをコンパイルできるのだけど。
736 :
デフォルトの名無しさん :2008/06/03(火) 12:02:24
>>735 make fooとした場合、
Makefile内の
foo:
コマンド
の部分が実行される。で合ってますか?
この場合、使えるソースファイルの名前はfooだけですよね?
例えば、fooってファイルの他にfoo1,foo2などのファイルを作った場合も
make foo1 ,make foo2という風にできるのでしょうか?
それとも、上のように様々なソースファイルを引数で指定するようならば、
make はマクロの定義をシェル引数からでもできる。
例: % make CC=gcc
ということなので、これを応用すればいいのでしょうか?
>>736 %: %.c
gcc -o $@ $<
ってMakefileに書いてみ
738 :
デフォルトの名無しさん :2008/06/03(火) 12:36:59
>>737 おお、ありがとうございます。こんな使い方できるんですね。最初からMakefileに
ついて調べとけば良かったorz
これで解決です。
ところで、autotoolsってありますよね。あれの使いどころが良く分かりません。
大規模なソフトウェア->autotools使う。
趣味範囲のソフトウェア->自分でMakefileを作って流用する
って感じなのでしょうか?
739 :
735 :2008/06/03(火) 12:59:50
>>738 やっぱりそうだったのかw 道理で話が噛み合わないと思った。
>>739 知識少なくてすみませんw
プログラムしたくてもMakefileを調べていたら全然進まないので、
やっつけでMakefile書いてきたツケが…
事実上、 autotools->クロスプラットフォーム Makefile->環境依存 だとおもえばいいよ。
なるほど。じゃあ、Makefileについてちゃんと調べようと思います。
foo.Cが任意のディレクトリにあるとき、 Makefileをソースファイルと同じディレクトリに置かないと、make fooとはできないよね。 できるのならぜひ方法を知りたい。
Makefileの中身はこんな感じ(一部抜粋) # Makefile for MinGW OBJS = main.o OPTS = LIBS = CC = g++ RC = windres CFLAGS = -O2 -Wall .SUFFIXES: .cxx .hxx .rc .ro # $(OUT): $(OBJS) $(CC) $(OPTS) -o $@ $(OBJS) $(LIBS) strip $@ @(del *.o 2>&1) > NUL @(del *.ro 2>&1) > NUL .cxx.o: $(CC) $(CFLAGS) -c $< .rc.ro: $(RC) -o $@ $< clean: @(del *.o 2>&1) > NUL @(del *.ro 2>&1) > NUL @(del *.exe 2>&1) > NUL
>>744 -fで指定するのが嫌で、alias make="make -f ~/Makefile"とかするのが嫌なら、
カレントにMakefileのシンボリックリンクでも置いておくとか。
>>746 aliasの存在を忘れていた。すぐ上でalias見たばかりなのに……。
ふだんはわざわざカレントにシンボリックリンク(ジャンクション)を作ってました。
とはいえ、カレントのMakefileを使いたいこともあるのでvpath使ってみようと思います。
こんな便利なものがあったとは。
>カレントのMakefileを使いたいこともあるので alias mk="make -f ~/Makefile" でOK
>>744 @ほにゃらら
で下階層に移動するのはダメ?
linuxのtarballでよくある方法
gcc on cygwinでコンパイルできません。 以下の通りなのですが、パスが通ってないのでしょうか。 よろしければ解決策をご教授ください。 $ cat hello.c #include<stdio.h> int main(){ printf("Hello,world.\n"); return 0; } $ gcc hello.c hello.c:1:18: stdio.h: No such file or directory hello.c:5:2: 警告: no newline at end of file $ set | grep ^PATH= | sed 's/:/\n/g' | grep -v ^\/cygd PATH='/opt/xfce4/bin /usr/local/bin /usr/bin /bin /usr/X11R6/bin /usr/lib/lapack'
>>752 -v オプションを付けてコンパイルするとインクルードファイルのサーチパスが出る
こんな感じに↓
#include <...> search starts here:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include
/usr/include
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api
そのどれか (たぶん/usr/include) に stdio.h が存在するか確認
754 :
752 :2008/06/04(水) 17:29:22
>>753 早いレスありがとうございます
-vオプションをつけて実行した結果、以下のログが得られました。
#include "..." の探索はここから始まります:
#include <...> の探索はここから始まります:
/usr/local/include
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include
/usr/include
探索リストの終わり
上記のパスを確認したところ
$ ls /usr/include/
$ ls /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/
README* gcj/ mm_malloc.h* stdbool.h* xmmintrin.h*
c++/ gpc-in-c.h* mmintrin.h* stddef.h*
emmintrin.h* iso646.h* objc/ syslimits.h*
float.h* libffi/ pmmintrin.h* unwind.h*
g2c.h* limits.h* stdarg.h* varargs.h*
$ ls /usr/local/include/
SDL/
となり、どうやらサーチパス上にstdio.hが無いようです。
>>735 カレントにfoo.cある時はMakefile無しでも
make foo
だけでデフォルトルールでコンパイルしてくれるぜ
俺はalias使わずに$CFLAGS,$CPPFLAGS,$LDFLAGS,$LDLIBS設定してMakefile用意せずmake派
cygwinのバージョンを古いのから、新しいのにアップデートさせたら、 コンパイルがかかる時間がかなり延びてしまった。 cygwinってアップデートしたら、コンパイル時間が伸びる場合ってあるの?
cygwinつーか、gccのバージョンの問題じゃない? gccは基本的にバージョンが上がるたびにコンパイルが遅くなってる。
質問ですっ 現在MinGWにてC++を開発して JNI連携でeclipseのJAVAで実行しようと考えています。 MinGWでdllを作って中を覗くと、 クラス名が「Java_HelloWorldJNI_sayHelloWorld@8」のように 「@+数字」が付いてしまいます。 こうなるとネイティブメソッド宣言がエラーで出来なくなっちゃいますよね? このクラス名指定でエラー ⇒ public native String sayHelloWorld@8(); これを回避するには 『dllwrap --add-stdcall-alias』 このような形で指定する事を調べてわかりましたが これをMinGWのどこで設定するのかがイマイチわからず。。。 Project>Export Makefileで作られたMakefileにも指定する所がなさそうですし。
>>758 どうやってDLLを作っているですか? dllwrapで作っているわではないの?
760 :
758 :2008/06/11(水) 14:14:30
MinGW Developer Studio 2.05 を使用してDLLを作っています。
MinGW Developer Studioは使ったことないからアドバイスできないや。
C++側の話なので該当スレで聞いてください。
C++でdllを作ってるわけじゃないから C++スレ行ってもスレチ言われそうだな。
このスレでいいよ、MinGWの使い方なんだから。 自分には答えられないけど。
>>758 JNIはstdcallだから、そのままだと@がついてしまうようだね
DEFファイルを使ってもいいと思うが
--kill-atとか指定したら消えないか?
766 :
758 :2008/06/11(水) 19:49:30
でけたー! >765さんありがとう! なので記述しておきます。 MinGW Developer Studioの「関数名@数字」の「@数字」の消し方 1 MInGWの「Project>Export Makefile」にてMakefile作成 2 Makefileの27行目を下記のように「--kill-at,」を付け加える。 LDFLAGS = -pipe -shared -Wl,--output-def,$(OBJ_DIR)\hogehoge.def,--out-implib,$(OBJ_DIR)\hogehoge.dll.a ↓ LDFLAGS = -pipe -shared -Wl,--kill-at,--output-def,$(OBJ_DIR)\hogehoge.def,--out-implib,$(OBJ_DIR)\hogehoge.dll.a 3 コマンドプロンプトでコンパイルに使用したいMakefileの階層に移動する。 4 コマンドプロンプトでMinGW Developer studioデフォルトインストールなら 「C:\MinGWStudio\MinGW\bin\mingw32-make.exe」を実行する。 5 Makefileの存在する階層にdll完成 結局MinGW Developer Studioの設定のみでは出来ませんでした。。。 オマケ dllの中身を見るにはコレがベンリー! Microsoft Visual Studio 6.0>Microsoft Visual Studio 6.0 ツール> Dependency Walker
758、ちゃんとまとめて、えらいな。質問者の鑑だ。
768 :
756 :2008/06/20(金) 01:14:17
>>757 なるほど。
確かに、GCCのバージョンは3.3から3.4ぐらいに上げたわ。
cygwinのバージョンをダウンさせずに、コンパイル時間を早くさせる方法はあるのかな・・
CPUとHDDを速いものに替えることだろうなあ。
770 :
756 :2008/06/20(金) 02:57:53
>>769 ハード的に改造しないと無理か・・・ orz
771 :
デフォルトの名無しさん :2008/06/20(金) 08:57:26
今日、gcc-4.3.0をcygwinからインストールしました。 ただ、間違えてC:/Tmpいかのgccを解凍したフォルダ内にインストールしてしまいました。 それで、一度アンインストールしてから再度別のフォルダにインストールしたいのですが、 アンインストールの仕方が調べてもいまいちわかりません。 どのようにすればよいでしょうか?
make uninstall やってみた?
773 :
デフォルトの名無しさん :2008/06/21(土) 03:35:12
やってみましたが、 the uninstall target is not supported in this tree と出るのみです。
>>771 手動削除でおk。
# make deinstall だったりしない?
MinGW+Msysな環境をWindowsXP Pro SP2に構築したのですが、Cygwinに比べて非常に お手軽で素晴らしいんですが、この環境にwgetを入れることは出来ませんか? GNU Wgetの公式サイトからソース落としてきて ./configure make したらエラーが出てコンパイルできませんでした・・・・。
バイナリで良ければMinGW Utilitiesにある
wget-1.9.1.tar.gz をダウンロードして /usr/src に展開。 wget-1.9.1-mingwPORT.tar.bz2 をダウンロードして適当なところに展開。 cd wget-1.9.1/mingwPORT sh mingwPORT.sh 質問には Download? と Unarchive? にNo を答えてビルド。 本当は自動でダウンロード&展開してビルドするはずだけどなんかうまく動いてないっぽい。
>>778 ありがとうございます!!!!
え〜と、本来なら人に聞かずにこういうの自分で分からないといけないと思いますが
一次情報源はどこでしょうか?出来ればポインタ等示していただければ・・・・
>>780 ん?これは?これはMSYSとは無関係にコマンドプロンプト上で動いたりするのでしょうか?
ぶっちゃけ mingwPORT まともにメンテナンスされてない気がするけどなー
皆様色々ご教示ありがとうございました。 おかげさまでwgetが使えるようになりました。今回は先に作業を始めたと言う事と せっかくMinGWとMSYSが入っているのでコマンドプロンプト版wgetは見送りました。 しかし別の環境で使う時は手軽にすぐ使えそうで、貴重な情報を頂きました。 本当にありがとうございました〜
解決したようだから別にいいんだけど、「コマンドプロンプト版」ってどういう意味? MinGW でビルドした実行可能ファイルは MSYS が無くても動くよ。 単独で動くという意味では mingPORT の wget も GnuWin32 の wget も同じ。
>>786 ありゃ、そうだったんですか・・・
では、mingPORTのwgetとGnuWin32のwgetの違いとは何でしょうか?
mingwportの件、sourceforgeのダウンロードURL変更にスクリプトが追随してない模様。 mirrors.sfファイルの最終行を DOWNLOADURI=${DOWNLOADURI}.dl.sourceforge.net/sourceforge/${PACKAGE} に書き換えたらmingwPORT.shで自動ダウンロードできた。
>>710 zshからvi起動してCのソースを書き書きしながらmakeすると
vc++のcl.exe呼び出してコンパイルしてくれるようなことできますか。
シームレスっていうのは、そういうのを言うんだけど。
791 :
sage :2008/07/08(火) 23:53:16
mingw5.1.4で--exec-charsetオプションが使えないのですが、 どうにか使えるようにはできないのでしょうか?
>>790 普通に出来るんじゃね?
これまでの流れ読んでないけど、790のことに関しては。
無理
>>793 何でよ?
Makefile書いといてviで:!makeでいいべ。
先生ー MSYS 1.0.10のmsys.bat叩いてもコマンドプロンプトが一瞬表示されてもう一回コマンドプロンプトが一瞬表示されてそのあとなんも起こらないんだけどこれどーすればいいの? コマンドプロンプト手動で出してmsys.bat呼んでやるとちゃんと起動されるんだけど… 環境はVista SP1 Ultimate
1. 麻縄を輪状にして天井から吊す 2. 陰茎をその輪の中に通してユートピア
妥協案 WindowsホストなVirtualBox上のLinux仮想マシンにWine/VC++/Cygwinをインストールして ホストの端末エミュレータから仮想マシンにログイン Linux/Wine/VC++/CygwinホストなVirtualBox上のWindows仮想マシンの端末エミュレータから ホストにログイン ただしWineでVC++とCygwin使えるかは知らない。
簡単にVirtualBox使えばいいじゃん的な事言っている人いるけどさ、 VirtualBoxっつか仮想PCはかなり重いぞ。その点もちっとよく考えろよと。
>>799 意外に軽いぞ VirtualBox。
cygwinでGNOME動かすと使い物にならないが、VirtualBoxならかなりいい感じ。
ただ、cygwinとVirtualBoxは全然別物だよ。
Windowsの便利なツールとして使えるのがcygwin、
Windows上でただ単に別のOS動かして満足感を味わうのがVirtualBox。
801 :
ひみつの検閲さん :2024/12/30(月) 04:49:45 ID:MarkedRes
803 :
デフォルトの名無しさん :2008/07/14(月) 12:42:37
リンクに関する質問なのですが、オブジェクトのリンク順番によって Undefinedエラーが発生してしまいます。 例えば、"ld a.o b.o"ならOKで、"ld b.o a.o"だとエラーが発生するといった具合です。 リンク順番を適切(?)に設定しなければならないのは CygwinかLinuxの仕様なのでしょうか?
Unix系では昔からそうだったと思うが。そうでないと、ライブラリ内の同名関数とバッティングしてしまうからね。
>>803 Linux だと適当に並べても面倒見てくれる。
cygwin や mingw だとリンク時に参照関係考慮して並べないとだめ、
ライブラリのリンクオプションの順番も重要。
>>804-805 CygwinというかUnix系自体に触ったことがなかったので
とても迷ってしまいました。ありがとうございます。
vista64にしたらmsysがうまくうごかねー・・・。なんかあちこちで スタックエラーで落ちまくり、Permission Deniedで止まりまくりんぐ。 長い死のロードになりそうだぜ・・・ぐへへ・・・(死
808 :
デフォルトの名無しさん :2008/07/16(水) 12:11:57
誰か助けてください。Cygwin上でgcc4.3.3をmakeしようとしたら、 /home/***/gcc-4.3.1/i686-pc-cygwin/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp:57:87: error:ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp: No such file or directory というエラーが出て止まってしまいます。たしかにhash_policy.hppの57行目には #include <ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp>があります。 しかしその場所を見てみると \i686-pc-cygwin\libstdc++-v3\include\ext\pb_ds\detail\resize_policy\hash_load_check_resize_trigger_size_base.hpp という名前のショートカットはありますが、そのリンク先 \libstdc++-v3\include\ext\pb_ds\detail\resize_policy\hash_load_check_resize_trigger_size_base.hpp のファイルがありません、リンク切れになっています。 単にgcc4.3.3を解凍してconfigure & make下だけなのですが何かインストールが足りないのでしょうか?
810 :
デフォルトの名無しさん :2008/07/16(水) 20:39:32
ffmpeg-checkout-2008-07-16のFFMPEGを下記のオプションでconfigureするとエラーが出てしまいます。
何が原因なのでしょうか?アドバイスをおねがいします。
http://ffmpeg.mplayerhq.hu/ffmpeg-checkout-snapshot.tar.bz2 ./configure \
--disable-shared \
--enable-static \
--enable-memalign-hack \
--enable-w32threads \
--enable-postproc \
--enable-libmp3lame \
--enable-libamr_nb \
--enable-libfaad \
--enable-libfaac \
--enable-liba52 \
--enable-libx264 \
--enable-libxvid \
--enable-avfilter \
--enable-gpl \
--extra-cflags=-I/static2/include \
--extra-ldflags=-L/static2/lib \
--disable-debug
エラー
./configure: line 196: pr: command not found
./configure: line 196: pr: command not found
libamr is nonfree and --enable-nonfree is not specified.
If you think configure made a mistake, make sure you are using the latest
version from SVN. If the latest version fails, report the problem to the
[email protected] mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.err" produced by configure as this will help
solving the problem.
ffmpeg-checkout-2007-07-20では上手くいくのですが 新しいものでないとavfilterが使えないのです。 ライブラリ?はぜんぶmakeに性交しているので、最後のffmpegで行き詰まっています。
エラーメッセージそのままじゃないか prコマンドはmingw32のcoreutilsあたりにはいっているはず libamrは--enable-gplと矛盾するので使えない
アドバイスありがとうございます。 解決できそうです。 l ibamr is nonfreeとありますね。 とりあえず、--enable-libamr_nbを外しました。 それとpr.exeが見当たらないので探してきます。
>>808 の件、解決しました。
どうやらwindowsで解凍したときに、ファイル名が長いことが原因なのか
ファイル名の末尾が化けたようです。
cygwinのコマンドで解凍したら正常にファイルがありました。
使用した解凍ソフトはLaplus1.53でした。多分バグだと思われます。
いいえ、仕様です。
WinFSが実用化してたらこんなしょぼい仕様とはおさらばのハズだったのに
817 :
デフォルトの名無しさん :2008/07/17(木) 19:42:52
もしかしてCygwinに付属しているg++(非GCC)って wchar.hインクルードしても、wprintfやらwscanf使えませんか? #g++ -v Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs Configured with: /usr/build/package/orig/test.respin/gcc-3.4.4-3/configure --ver bose --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libe xecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-langu ages=c,ada,c++,d,f77,pascal,java,objc --enable-nls --without-included-gettext -- enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java- awt --with-system-zlib --enable-interpreter --disable-libgcj-debug --enable-thre ads=posix --enable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptio ns --enable-hash-synchronization --enable-libstdcxx-debug Thread model: posix gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
Yes 諦めてMinGW入れなさい。
819 :
デフォルトの名無しさん :2008/07/18(金) 00:07:30
同ディレクトリにある5つのフォルダのmakeを自動的に実行するにはどうしたらいいのですか? dir1/makefile dir2/makefile dir3/makefile dir4/makefile dir5/makefile
>>819 for foo in dir[1-5]; do pushd $foo; make; popd; done
823 :
デフォルトの名無しさん :2008/07/18(金) 11:41:47
Cygwin + Gcc 4.3.1でOpenMPプログラミングをしようとしたら、 #include文でomp.hがないと言われてしまいました。 gccのconfigureのオプションが足りなかったのでしょうか? 誰か教えてください。
omp.hがない
宿題スレでみた /dev/pts と言うのをcygwinで使いたいのだけど、 何かセットアップが必要のようで、わかりません。 /devを見てみると、 stdinとかstdoutと言うのはあるけど、ptsと言うのは見当たりません。 どうすると、使えるようになりますか?
>>824 Gcc 4.3にomp.hは入っていないのですか?
4.2にしか入っていないのですか?
>>826 omp.hはgccの付属物じゃないよ。OpenMPの付属物。
>>823 --enable-libgomp は指定した?
>>828 そんなオプションあったんすか!?
configureの説明書きには--disable-libgompしかないから
デフォルトかと思ってました・・・
あ〜、また7時間makeし直しか・・・orz
>>829 いや、だからおまいの環境、OpenMPのライブラリとヘッダがインストールされてないだろ、と。
>>830 gcc4.3.1の中にomp.h.inファイルがありましたので、
多分コンパイルの対象外にされているんだと思います。
何かのconfigureオプションが足りない?
続きはOpen MPスレで質問させていただきたいと思ってます。
趣味を兼ねてアセンブリの勉強を行いたいと思いますが、 cygwin環境上ではgas/nasm/masmと選択肢がいくつかあります。 nasmがLinuxにおいて標準のアセンブラとなっているようですが、 gasも捨てがたいし、文法なども違うので選択に迷っております。 「とりあえずこれから始めれば無難だよ」というアセンブラを ご教授いただきたく書き込ませていただきました。
私が教授するならgasだが、教示するならnasmかな。
CASL
ハンドアセンブル
836 :
デフォルトの名無しさん :2008/07/29(火) 11:32:16
プログラム初めて2日なんですけど MINGWにはDLLを読み込む関数はないんですか? どうしたらいいんですか?
普通に #include <windows.h> して LoadLibrary すればいいのでは
そもそも暗黙的リンクだとだめなの?
dlfcn.hがないの
MinGWはWin32APIしか使えないよ POSIXが欲しけりゃcygwin
よくわからないからcygwinにします
使ってる教材がUnixやLinuxプログラミング関連のものならCygwinでいいが soじゃなくDLLって言ってるところが気になる。
843 :
夏厨 :2008/07/29(火) 20:21:03
CYGWiNにGCC4.2入れる方法教えろ
gcc4.2をダウンロードして展開して./configureしてmake install
845 :
夏厨 :2008/07/29(火) 20:41:24
DURON800MHZじゃ時間かかりそうじゃん 代わりにコンパイルしてよ
846 :
夏厨 :2008/07/29(火) 20:56:01
ひゃはああああああああああああああwwwwwwwwwwwwwwww 夏だぜwwwwwwwwwwwwwww
NOMEとKDEが糞すぎてstartxする気になれません><
848 :
デフォルトの名無しさん :2008/07/29(火) 22:18:33
GCC3.xx、GCC4.xxで別にコンパイルしたライブラリとかを混在させて使用したらあかんのですか?
>>848 Cのライブラリなら問題ないはず。C++のは問題ありあり。
C++はマジつかえん言語だな。 ソースレベルじゃないと再利用できないよね、実質
お前のが使えないよ
Cygwinでconfigure; makeするときも空きメモリが減るね Win版のmake辺りがおかしいんだろうか
その、空きメモリが減るという現象はどうやって確認したのかね。 まさかとは思うが、「タスクマネージャのコミットチャージの数字が減らないから」なんて言わないよな。
log4cxxについての質問があります。
log4cxx.propertiesに以下の様に記述し、
==================================================
log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
(以下略)
==================================================
log4cxx::PropertyConfigurator::configure("log4cxx.properties");
として読み込んだ場合に
==================================================
Could not instantiate class [org.apache.log4j.ConsoleAppender].
Class 'org.apache.log4j.ConsoleAppender' not found
Could not instantiate appender named "A1".
==================================================
とエラーが発生します。
何かパス等を設定する必要があるのでしょうか?
なお、Cygwin上でgcc 3.4.4 にてビルドしました。
log4cxxのバージョンは 0.9.7です。
ソース等は下記のサイトを参考にしました。
http://logging.apache.org/log4cxx/
857 :
856 :2008/08/03(日) 17:22:36
log4cxxのバージョンを0.10.0にしたら動作しました。 再検証のために0.9.7に戻すの面倒クサス(´・ω・`)
しなくていいよ
したいんです
>>858 Windows他、その怪しげなgccをインストールするまでにインストールした全てを再インストール。
あきらめます
中身は単なるMINGWのようだし fairuをsakujoして、追加されたpasuもsakujoするだけだがな・・・ 何をどのように理解してrejisutoriに登録されたなどと言っているのかは興味深いところだが
>>855 もしかしてバカですか?
コミットチャージの数字が減るのが正常でしょ。
Windows の使い方くらい覚えろよ。恥ずかしいヤツだな。
読解力の欠如した馬鹿が一人……
Vistaならそうなんだけどねぇ
アプリを起動する。 コミットチャージの数字が増える。 アプリを終了する。 コミットチャージの数字が減る。 別のアプリを起動する。 コミットチャージの数字がまた増える。 そのアプリを終了する。 コミットチャージの数字がまた減る。 これの繰り返し。 もし減らなかったらリソースを食いつぶして自滅するでしょが。 UNIX屋って、そんな基本知識も無かったのか? バカじゃないの?
ん? >855は、「空きメモリが減ると言う現象をどうやって確認したのか」>854に聞いているだけでしょ。 コミットチャージで判断できると思ってないだけなんじゃない?
だからぁ、タスクマネージャのコミットチャージが減るという事で確認したんですが、何か? 逆にぃ、タスクマネージャのコミットチャージ以外でどうやって確認しろと? もちろん、ネットを捜せば各種アプリケーションがゴロゴロ転がってますが、 CTRL+DEL押してタスクマネージャのコミットチャージを見るだけで簡単に確認できるものを わざわざツールダをウンロードしたりインストールしたりって、バカじゃね? メモリーが解放されない、ていうデリケートな問題なのに、変なアプリをインスコして かえって問題の特定を困難にするだけじゃん。 ちなみに、Evelest と Process explorer は以前からインスコしてたんでソレでも確認したが 問題解決にはならん。メモリーが開放されないという事実を確認しただけじゃ 問題解決にはならんのだよ。
UNIX屋ってスキル低いねぇ
>その、空きメモリが減るという現象はどうやって確認したのかね。 >まさかとは思うが、「タスクマネージャのコミットチャージの数字が減らないから」なんて言わないよな。 晒しとこ
夏だな
昔あったVBユーザがC/C++ユーザを挑発してるコピペに似てるなw
>>855 知ったかぶりして他人を煽ろうとしたところが
とんでも無い墓穴を掘っちゃったね。
おまい恥ずかしいヤツだな。もしかして中学校2年生か?
コイツのせいでスレが荒れてしまったな。
ここまで俺の自演
IDが無いからって火病り杉
879 :
デフォルトの名無しさん :2008/08/09(土) 09:55:37
/usr/bin/make ./26104-700_ANSI_C_source_code.zip
make[1]: Entering directory `/c/cygwin/home/hoge/amrnb-7.0.0.0'
rm -f ./26104-700_ANSI_C_source_code.zip ./26104-700.doc
cd . && /usr/bin/unzip 26104-700.zip
UnZip 5.52 of 28 February 2005, by Info-ZIP. Maintained by C. Spieler. Send
bug reports using
http://www.info-zip.org/zip-bug.html; see README for details.
Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
Default action is to extract files in list, except those in xlist, to exdir;
file[.zip] may be a wildcard. -Z => ZipInfo mode ("unzip -Z" for usage).
-p extract files to pipe, no messages -l list files (short format)
-f freshen existing files, create none -t test compressed archive data
-u update files, create if necessary -z display archive comment
-x exclude files that follow (in xlist) -d extract files into exdir
(略
Examples (see unzip.txt for more info):
unzip data1 -x joe => extract all files except joe from zipfile data1.zip
unzip -fo foo ReadMe => quietly replace existing ReadMe if archive file newer
chmod og-w ./26104-700.doc
/usr/bin/chmod: cannot access `./26104-700.doc': No such file or directory
make[1]: *** [26104-700_ANSI_C_source_code.zip] Error 1
make[1]: Leaving directory `/c/cygwin/home/hoge/amrnb-7.0.0.0'
makeするとこんな感じのエラーが出るんですが
何処を書き直したら直るんでしょうか。
881 :
デフォルトの名無しさん :2008/08/09(土) 10:46:36
コーデックみたいだが、wgetも必要みたいだな \MinGW\binにunzipとwgetを放り込んでおけばおkじゃね
Wgetは入れたらちゃんと動いてくれました。
>>883 これはBinの中身だけBinに入れればいいんでしょうか
msys/1.0の中に丸ごといれるのですか?
unzip.exeをbinに入れる。
前と同じですタ。 再インストールした方がいいんでしょうか。
MinGW MSYS msysDTK ぜんぶ入れてる?
configureからやり直すとか
試したら普通にコンパイルできたぞ 何かが足らないか、おかしいか
892 :
デフォルトの名無しさん :2008/08/09(土) 21:58:24
cygwinも入れてる
ちなみにamrnb-7.0.0.0のフォルダの中に26104-700.zipはダウンロードされてる?
894 :
デフォルトの名無しさん :2008/08/09(土) 23:31:33
cygwinでやってみれば?
MSYSインスコMinGWのパス C:\MinGWではなくC:/MinGW
Win32 Pathしか解釈しない版のunzipを入れるな
おまいら優しいな
900 :
879 :2008/08/10(日) 19:12:00
win入れなおしてみたらアクチ云々でdkfまおsぢjごあいsdfさ となったので、もう一度インストールからやり直してみます。
1、MinGW+MSYS 2、CYGWIN 3、makeのバージョンを変えてみる
>>894 最初からこれでやってたんですが、Unzipがどうしても動作してくれないです。
インスコしなおしても結局同じでした・・・
>>897 そういうUnzipはどこにあるんでしょうか?
Cyswin入れてみます
gcc環境なんだから、ほしいプログラムはソースコード入手して自分で コンパイルするのを覚えたほうがいい。 あとあと役に立ちまくる。
やってみます。
>>903 CygwinやMinGWだと、固有の癖があり過ぎて勉強にならない。
CygwinでSubversion1.5.1をビルドしようとしたらなかなか通らず、
1.4.6のCygwinパッチを参考に俺パッチを作成してようやく突破したら、
その数日後に正式パッケージが出て泣いた。
MinGW-5.1.4.exe MSYS-1.0.10.exe msysDTK-1.0.0.exe 全部インストールしてるんですが、なんか方法間違ってるんでしょうかね・・・ CygwinもAllにして全部入れちゃいました。 Cygwinでやってみます
いやだから、違うunzip.exeがPATHの優先度の高い位置にあるんだよ。 HDD内からunzip.exeを検索してみ。
あああああああ、そうだったんですか。
勘違いでした、
>>908 の教えを受けてなんとなくIpconfig打ったら普通に
Dosコマンド使える事を知った・・
/c/msys/1.0/bin/unzip.exe /c/msys/1.0/home/hoge/test.zip ○
/c/msys/1.0/bin/unzip.exe test.zip ○
unzip.exe /c/msys/1.0/home/etoh/Foltid132.zip X
/bin/unzip.exe /c/msys/1.0/home/etoh/test.zip X
という結果でした。結局フルパスでUnzipしないと駄目という結果に。
てことはCygwinのUnzip使ってたって事でしょうか。
でもCygwinのUnzipは普通に解凍してくれてたんですが。
これどうやったら直るんでしょうか。
環境変数には特に何ものってないんですけど。でも/usr/local/binってなんでしょうか。
そんなディレクトリはないんですが。
$ echo $PATH
.:/usr/local/bin:/mingw/bin:/bin:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/Program Files/Microsoft SQL Server/90/Tools/binn/:/c/Program Files/TortoiseSVN/bin
UnzipのありかはCygwinとMsys以外にはなぜかC:\WINDOWS\PrefetchにUNZIP.EXE-0BF325C5.pfとUNZIP.EXE-30346CEE.pfって
ファイルがありました。先読み用らしいんですが、デリってやっても結果は変わらず。
msysかcygwin上でwhich unzip つーか、混在環境は使用者を混乱させるだけだぞ どっちかにしろや
which unzipは/binの中だけでした。 Cygwinは削除して、Cの中を検索しても今はMsysの中にしかないんですが、 相変わらずフルパス指定ではちゃんと動くんですが、unzipや/bin/unzipでは 説明文がズラっと出るだけで動いてくれません・・・・。 UnzipをソースからMakeしてインストールしてみたんですが、まったく同じ結果に。 インストールの仕方が悪かったんでしょうか。
/usrはルートディレクトリ。
unzipはC:/msys/1.0/binではなく、C:/MinGW/binに入れろって。
それでmakeすれば通る。
何やっても駄目なら、MinGW、MSYSも削除して
>>906 のパックでやりな。
試したらできたから。
>>912 結果は同じだったんですが、
>>906 のと自分のを見比べてみてmsys/1.0/mingwというフォルダの中身が入ってる事に気づきました。
しかもわんさか。
んで、この中のbinフォルダを作成してにUnzip入れたら動きました・・・
なんかとんでもないポカをやってたようですが、なんでここのBinならちゃんと動くのか未だわかりません・・・
msysの下にmingwは入れないなw パックにしているからそうしたんだろうけどw
915 :
デフォルトの名無しさん :2008/09/01(月) 14:30:24
makefileに関する質問なのですが、依存関係などのファイル名に C:/hoge.cといったWindows形式を指定すると *** target pattern contains no `%'. といったエラーが発生してしまいます。 /cygdrive/C/hoge.cとするとエラーは回避できるのですが、 C:/hoge.cのままでmakeできるようにする方法はないのでしょうか。
916 :
915 :2008/09/01(月) 14:37:20
ググってたら3.81ではサポートしなくなった的なことが書いてあったので 3.80に戻してやってみます。
素直にVC使いなさいよ
こういうことね。一応念のため。 a.exe : $(shell cygpath C:/hoge.c) gcc $<
921 :
デフォルトの名無しさん :2008/09/02(火) 04:46:10
qucsでデジタル回路のシミュレーションをしようと cygwin でfreehdlをコンパイルしていれました そしてqucsでシミュレーションを実行しようとするとそのコンパイル時にg++から ld: cannot find -lieeeと怒られてしまいます libieeeとかってどっかにあるんですか? libcに含まれてるみたいなんですが、libcはcygwinではコンパイルできないようでした
>>921 面白いツールの紹介ありがとう。
俺は普通に
./configure
make
make install
でうまくいった。
与えられる情報としては
libieee.aは俺のPCに存在しない
だけかな。
923 :
デフォルトの名無しさん :2008/09/04(木) 20:49:29
超ど初心者の質問です。 MinGWをインストールして、pathの設定もして、ソースファイルも作って、 コマンドプロンプトに>gcc<ソースファイル名.cpp> って入れると、 構文が間違っていますって言われてしまいます。 入門書見ながらやってるんですが、 入門書にはgccコマンドを用いて〜とか書いてあります。 gccコマンド=コマンドプロンプトにgccと入力した状態と考えていいんでしょうか?
わかりせん。 コマンドプロンプトの内容をそのままはってくれ。
もちろん >gcc<ソースファイル名.cpp> を文字通りに入力した訳じゃないんだろ?
926 :
デフォルトの名無しさん :2008/09/04(木) 21:47:00
>>924 >>925 え?え?
も、文字通り入力しましたけど・・・・
違うんですか?
恥さらしの悪寒・・・。
>>926 ソースのファイル名がtest.cppだったら
gcc test.cpp
って入力してEnterだよ。
928 :
デフォルトの名無しさん :2008/09/04(木) 21:57:57
ひとつ上のレスも読めんのかお前は。
930 :
デフォルトの名無しさん :2008/09/04(木) 22:16:36
<>はいらなかったんですね。 ありがとうございました。 大変失礼致しましたl。
いいえ、「<>」が問題なのではなく「<>」が問題なのです。
まぁその入門書が不親切でもあるな 例として > gcc ファイル名.cpp と書いてあれば間違えようがないのに
無謀だ。無謀すぎる。 gcc 以前の問題だな。 まず先に、Windows の使いかたを勉強しろや。
まぁ、CygwinやMinGWを入門に使おうと思う時点で無謀極まりない。
>>934 ところが「ただで作れる開発環境」とかいって喧伝されていたりするからねぇ・・・
VC++ Expでも使わせればいいのに
>>932 > ←これも入れそうだぞ
勇気ある行為だと思うが、選択として悪いとは思わないな。 どうせなら、(PC-)UNIXであるところのLinux/Mac OS Xを使えばいいのにとは思うけど、スレ違いか。
makeファイルやデバッグが面倒なんで Mingw+IDE使ってるオレ
IDEなにつかってるの?
他スレに書いちゃったんだけど、 MinGW developer ってやつ VC6.0の模倣品で環境一括インストールしてくれる
>>928 こういった解説書やマニュアル類、あるいはヘルプなどで
コマンドの書式を書いてある場合、 < > や [ ] は特殊な意味を
持ってることが多い。
ある程度お約束みたいになってるんで、覚えておく方がいい。
[ ] だと中に書かれている | で区切られた項目から選択して入力。
< > で囲まれた項目は、必要なければ省略可能等
釣りだろ?
medow と cygwin と gcc で使っているのですが、 設定をいじっているうちにときどきいつの間にか、エラーメッセージが日本語になっていたり またいつの間にか英語に戻っていたり変わっているかしてしまいます 気づいた時点でいくつか設定いじってみたりしたのですが、メッセージに変化はなく いったいgccのエラーメッセージの言語って何を基準に決定しているのですか? ちなみにgccのバージョンは3.44です
自己解決しました
どう解決したのか是非詳しく。
946 :
デフォルトの名無しさん :2008/09/09(火) 13:50:17
cygwinでgccのエラーメッセージを日本語化するのは無理だと思ってた 無知な俺は期待age
947 :
943 :2008/09/09(火) 16:04:59
勝手に人の番号を名乗らないでください
948 :
943 :2008/09/09(火) 16:23:08
ごめんなさい
nls有効化してgccビルドするだけじゃないの?
MinGW使ってるんですが、どのバージョンが一番安定してますか?? 5.1.3をずっと使ってたんですがどうもバギーな気がしてきまして・・
951 :
950 :2008/09/10(水) 21:22:17
>>951 gccのバージョンとMinGWプロジェクトのバージョンを散り違えるな
gccは3.4.5の新しいやつで 他に必要なのは開発版以外の最新でいいんじゃない
955 :
950 :2008/09/11(木) 11:02:21
ありがとうございます。 >gccのバージョンとMinGWプロジェクトのバージョンを散り違えるな すいません。どこをどう勘違いしてるのかわかりません汗 よかったら教えてください。 >gccは3.4.5の新しいやつで これはどういう意味でしょう?gccではなくてmingwの話なのですが・・ 結局一番安定してるのはどのバージョンでしょうか? やはり5.xx系は人柱なんですかね? アドバイス頂けると幸いです。
自ら
>>951 に掲示しているとこ普通に見ればわかるだろ
年月だけでなく、ご丁寧に日にちまで書いてるんだぞ
>>955 gcc -> IE
MinGW -> Windows
958 :
950 :2008/09/11(木) 16:12:30
どもです。
>>自ら
>>951 に掲示しているとこ普通に見ればわかるだろ
http://ja.wikipedia.org/wiki/MinGW ここの最新版は3.4.5ってのは情報が古いって理解でOKでしょうか??
ただ最新のを使いたいのではなくて安定しているのを使いたいんです。
一番安定しているのは3.4.5なんですかね??
>> gcc -> IE
>> MinGW -> Windows
MinGW- > Windwowsってのは分かるんですがgcc -> IE ってのはどういうことですか??
959 :
950 :2008/09/11(木) 16:18:54
すいません、あと
http://sourceforge.net/project/showfiles.php?group_id=2435 ここで
Automated MinGW Installer MinGW5.1.4
と
GCC Version 3 gcc-3.4.5-20060117-3
がありますが(他にもいろいろありますが)これってどう違うのでしょうか??
どちらもMinGWではないのですか??
インストーラがついてるかついてないかってだけの違いではないですよね?
自分は多分、上のAutomated MinGW Installerのversionが5.1.3 の時のを使ってたと思うのですが・・
960 :
950 :2008/09/11(木) 16:44:35
あーなんか「MinGW = Windows用に移植されたgccコンパイラ」 だと思ってました。 Windowsの中でgccコンパイラを使うための環境がMinGWなんですね。 しかしmsysでgcc --version と打ったら 3.4.5 と出てきました。 今の状態で安定版(と思われるもの)を既に使ってるみたいです。。なんかよくわからないバグみたいなものがあるのですが・・ MinGWをアップデートしてもその中のgccコンパイラはversion3.4.5から変わらないと思うのですが、 MinGWのアップデートだけでコンパイル時の不具合が直ったりする可能性はあるものでしょうか??
コンパイル時の不具合ってソースコードが変ってことじゃないの?
962 :
950 :2008/09/11(木) 17:39:58
普通に考えればそうなんですがどっからどう見ても間違ってる部分がないもので・・ コンパイルエラーは出ずにコンパイルは成功するんですが、バイナリ走らせるとフリーズするような類のバグです。 ソースコードがおかしいわけではない・・と思うのですが・・(多分)
実行時のエラーをコンパイラのせいにするのはよくないよ。
964 :
950 :2008/09/11(木) 18:18:01
うーむ・・やはりソースコードのせいなのか・・ 3.4.5は安定版なのでしょうし。
自分のデバッグ能力を疑った方がいいのでは?
>>962 shift JISでソース書いてると、変なことがよく起こるよ。
たとえば、「表」の2バイト目が"\"なので//コメントの行末にあると次の行もコメントになる、
*/の直前にあると、コメントがそこで終わらず、次のコメントの最後までまるまるコメントになる、
文字列リテラルの最後にあると"がエスケープれて文字列が続いてることになる、などなど
-finput-charset=cp932
968 :
デフォルトの名無しさん :2008/09/11(木) 20:16:37
コンパイラのバグといいながら対象のソースを出さない奴は100%自身のミス
コンパイラ含めた環境の不具合を疑うのなら、 いきなり本命のコードをコンパイルしようとせずに、 至極簡単なテスト用のコードを作ってコンパイルすればいいのに。
100%は言い過ぎだろ、99.99%くらいだ デバッガで追ってみればいいじゃん
安定板とか言ってる時点で...
mingwGCC4.31をダウンロードできるところないですか?
976 :
950 :2008/09/12(金) 00:37:46
>>965 うぜーから消えろ。
>>968 >> コンパイラのバグといいながら対象のソースを出さない奴は100%自身のミス
でかいソースの中の一部なのでそれだけここに出しても意味ないと思いますが。
問題の部分単発でコンパイルすればうまく動きます。文字コードはUTF-8なんです。
デバッガはなんかeclipse連携できなかったので放置してたんですが、もう一回チャレンジしてみます・・。
十中八九、どっかでメモリ壊してるな。 問題が発現するところ自体にバグがないのはよくあることだし。
978 :
950 :2008/09/12(金) 01:04:04
ありがとうございます。 >> 十中八九、どっかでメモリ壊してるな。 多分そんな感じなんだろうなと自分も思うんですが、メモリが壊れるってのは例えばどういう時起こるんでしょうか??
確保したメモリ領域の外に書き込んだとき。
デバッグもせずにコンパイラを疑うとか(笑
982 :
950 :2008/09/12(金) 03:27:41
大抵はポインタと配列で範囲外のアクセス(主に書き込み)で起こるかなぁ。 配列は片っ端からstl::vectorに置き換えるとその手のバグは顕在化しやすくなる。 後文字列操作で終了コードが抜けたりとか。これもstl::stringで回避できるか。 あとなんだろね。
なんで、そのレベルで
>>950 はコンパイラのバグを疑ってんだ?
実験的な最新版とか、コードが大幅に入れ替わったメジャーVerUPの後とかじゃないと
めったにお目にかかれない物なのに。
access violationはオメーのバグだぜ。
985 :
943 :2008/09/12(金) 05:34:32
>>945 まぁ、わざわざ書くほどでもないアホなミスでした
すっごいいまさらなんだけど、一応どう解決したかを
後から単体のインストーラで入れた(かなり古いバージョンの)Mingwのpathの設定が優先されてだけでした、
cygwinのコンソールだと/usr/binのパスが最優先になるんですがMeadowから使ってたので
windowsの環境変数を使ってまして。なので、pathの順番変えて解決しました
時々起こってのは本当なんですが過去起こった原因は結局わかりません
エラーの日本語化はCygwinのsetup.exeで普通にインストールしただけなのでよく知りません
環境変数LANGを設定しただけです
低脳がひとりいると、このスレ盛り上がるな。 無理しないで自分のレベルにあったVBでも使ってればいいのに。
低脳の自覚がない人には向かないんじゃないの、gcc?
余程悔しかったようだな
煽り合うのはその辺にしておきなさい。 みっともないからw
ひとりの屑低脳って950しかいないじゃん 自覚しろよ、すこしは。
なに火病ってんだ。顔まっかにして。
993 :
950 :2008/09/12(金) 16:31:33
やっと直りました。やっぱりアクセスしてはいけない領域にアクセスしていたのが問題だったみたいです。 友達いなそうな可哀想なのがもうちょい少なければいいんですけどね。 でも色々勉強になりました。親切に教えてくださった方々ありがとうございましたm(_ _)m
お前が自分の無知を棚に上げて訳の分からんフレームを垂れ流したのがそもそもの元凶だろうが
995 :
950 :2008/09/12(金) 16:42:11
棚になんてあげてませんよ。 言われている通り、俺は無知で低脳なんでそれをさらしてご教授願っただけです。 なぜそんなのお怒りなのですか?
分かったから少し落ち着けよ
998 :
950 :2008/09/12(金) 17:33:51
どっちも本物ですよぉ
彼らが落ち着くまで次スレは立てないでください
ume
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。