1 名前:デフォルトの名無しさん [2007/04/30(月) 23:52:47 ] Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。 過去スレ: cygwin + mingwn + gcc 相談室 Part2 pc11.2ch.net/test/read.cgi/tech/1126103347/ cygwin + mingwn + gcc 相談室 pc8.2ch.net/test/read.cgi/tech/1058134693/ 関連サイト: Cygwin www.cygwin.com/ MinGW www.mingw.org/ 関連スレッド: GCCについて part7 pc11.2ch.net/test/read.cgi/tech/1145357824/ 【激遅】AppleGCC【絶望】 pc11.2ch.net/test/read.cgi/tech/1173267844/
331 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 00:48:57 ] realpathでいいじゃん
332 名前:328 mailto:sage [2007/12/14(金) 01:38:32 ] >>331 おおおお まさしくこれです ありがとうございます
333 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:12:16 ] これでx−window動かしたいんですけど 手順教えてください。
334 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:18:36 ] 板違いになるから Windows板のCygwinスレか pc11.2ch.net/test/read.cgi/win/1175419995/l50 Unix板のCygwinスレでやってくれ pc11.2ch.net/test/read.cgi/unix/1184677144/l50
335 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:36:12 ] すみませんでした
336 名前:デフォルトの名無しさん [2007/12/18(火) 13:44:38 ] 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を sourceforge.net/project/showfiles.php?group_id=2435 からダウンロードしてインストールしても変わりませんでした。どうかよろしくお願いします。
338 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 15:25:46 ] sourceforge.net/project/showfiles.php?group_id=114505&package_id=124206&release_id=434286 DS用のビルドスクリプトだけど 多分、いや確実に参考に出来る
339 名前:sage [2007/12/18(火) 16:43:26 ] >>328 さん、ありがとうございます。早速試してみたいと思います。
340 名前:sage [2007/12/18(火) 16:43:54 ] >>338 さんでした。。。
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で完結してるならちゃんと捕捉できます
343 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:46:12 ] >342 これが Cygwin にも適用されるかどうかはわからないけど ttp://gcc.gnu.org/faq.html#dso
344 名前:デフォルトの名無しさん [2007/12/22(土) 10:35:01 ] MinGW使ったんだけどsys/ioctl.hとかのヘッダーがないけど、 これってMinGWがまだ不完全だからってこと? それともどっかに落ちてるのを適当に拾って入れればいいの?
345 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 11:49:24 ] wikiから >MinGWの名称はMinimalist GNU for Windows(Windowsのための最小限度の >GNUの意)を表わす。 >CygwinはLinuxや他のUNIXシステムに見られるような、Windows上に完全な >POSIX層を提供することを目標にしており、互換性のために必要であれば性能も >犠牲にしている。一方でMinGWはフリーのコンパイラと各種ツールのみを行い、 >性能を重視している。 >MinGWはPOSIX APIを提供していないので、Cygwinでコンパイル可能だが >MinGWでは可能で無いUnixアプリケーションが存在する。
346 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:06:51 ] つまり、ioctl使いたかったらcygwin使っとけってこと。
347 名前:デフォルトの名無しさん [2007/12/24(月) 11:04:13 ] sourceforge.net/project/showfiles.php?group_id=2435 SourceForgeのMinGWダウンロードのところのソースファイルをダウンロードして自分でmake installしようとしたんだけど、 makeで必ず失敗する。 WinXPでMinGW環境だとだめってこと? なんでMinGWのダウンロードのところにあるのにmakeができないの?俺だけ? i386用のバイナリがあるからそれ使えっていうのもわかるけど、 ちょっとバージョンの新しいのを入れたいからmakeしようとしたら全然だめ。 確認のため、今すでにMinGW版としてあるやつのソースもmakeしたら全然だめ。具体的にはTexInfoね。 これどうゆうこと?
348 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 11:31:14 ] エラーメッセージが理解できるようになってから来てください
349 名前:デフォルトの名無しさん [2007/12/24(月) 11:51:51 ] エラーメッセージくらいわかってるよ。 でもMinGWにはないヘッダーとか使ってるソースがMinGWにあるんだぜ? しかもバイナリ形式もあるんだぜ? おかしくない? それとも俺が何か入れ忘れてるの?
350 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 11:58:02 ] 入れ忘れてんじゃネーの? makeに必要な環境がなかったらmakeは通らんだろ。
351 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:25:24 ] > でもMinGWにはないヘッダーとか使ってるソースがMinGWにあるんだぜ? なにも不自然な点は見受けられないんだが
352 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:58:36 ] 「環境を構築するための資源」と、「環境を利用するための資源」は違うんだぜ。
353 名前:デフォルトの名無しさん [2007/12/24(月) 13:07:03 ] それってどっかからライブラリなりヘッダーなりを調達する必要があるときはあるってこと? それってMinGW用とかじゃなくて適当なところから持ってきて適当に追加すんの? 具体例とかあるとわかりやすくてうれしいんだが。
354 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:34:58 ] 適当ってなんだよ適当って。 MinGW側でパッチが必要なものはMinGW側に置いてあるだろうし、 置いてないものはGNUサイトとかミラーからでも拾って来ればいいだろう常識的に考えて。
355 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 14:52:57 ] README.devとINSTALL.genericは読んだのか? configureはちゃんと通ってるのか? 根本的に、スキルが足りないんじゃないのか?
356 名前:デフォルトの名無しさん [2007/12/24(月) 15:13:53 ] すまん。もしかしてmsysDVLPRを入れてなかったからなのか? とりあえずやってみるが、うまくいかなかったらフォローしてくれ。
357 名前:デフォルトの名無しさん [2007/12/24(月) 17:24:42 ] www.mingw.org/MinGWiki/index.php/MSYSBuildEnvironment とか読んでみたんだが、よくわからん。 とりあえずmsys直下にmsysDVLPRを解凍していれてやればいいみたいなんだが。 このmsysDVLPRもgcc-libの中にexeがあったりして、これでいいのかとよくわかんない。 それと.profileを編集するようなんだが、これもよくわからん。 くれくれ君ですまないが、誰か知ってる人正しいmsysDVLPRの入れ方とかmsysBuild環境の作り方教えテルミー。
358 名前:デフォルトの名無しさん [2007/12/24(月) 17:26:34 ] それと適当に入れてbashのmakeをINSTALL.MSYSにならってしてみたんだが、cc1.exeが-fnative-structというオプションがわからんとか言ってエラーになった。 やっぱり環境構築がおかしいんだろうか。詳しい人たのむ。
359 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 19:17:58 ] あのさ、一々アゲて「俺、ソースmake初挑戦日記」書くの止めてくんないかな。 そういうのは、mixiでやってくれ。冬休みに入ったのはわかったから。
360 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 11:09:03 ] >>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環境を作ったのか教えてほしい。
362 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 12:52:23 ] >>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って何処にあるの?
365 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 15:40:08 ] >>363 うん。 WinXP TexInfoのBuildは、いろいろ入れないとできなかった気がするんで、 うちはバイナリをダウンロードしてきて入れた。 TexInfo入れずに configureしてBuildできなかったっけ? このTexInfo関係はドキュメント作成するのに必要なだけなんでスキップしても 問題ないんだけどね。
366 名前:デフォルトの名無しさん [2007/12/25(火) 16:04:10 ] >>365 うん。俺もドキュメントだから関係ないと思ったけど、 やっぱりみんなが(外人とか)当たり前にビルドしてるのに できないのが、なんか納得いかなくてな。 それにTexInfoのバージョンあげないと、他のツールをビルドするときにMakefileとかを 強制的に書き換えないといけないのが、なんか嫌だったんだ。 とりあえず今はbashのMinGW Download pageにおいてあるやつをビルドしようと思ってるんだが、 INSTALL.MSYSとか読むと www.mingw.org/MinGWiki/index.php/MSYSBuildEnvironment が必要らしんだな。でも英語得意じゃないからそれっぽくやってみてもうまくいかないし。 正直もうお手上げ状態だ。英語をちゃんと理解できればいいんだがな。愚痴っぽくなってすまん。
367 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 16:21:08 ] 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も入れてみたがだめだった。えろい人たのむ。
369 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:41:02 ] とりあえずあきらめて悟りを開くかCygwinに乗り換えるかしれ。 立てよ国民!gcc -mno-cygwin!!
370 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 14:59:08 ] いや俺はあきらめたくない。 mingw-usersとかのメーリングリスト見てるとみんな当たり前にやってんだぜ。 英語が苦手なだけでMinGWを利用できないなんて悔しくてやだ。 でも解決策はわからん。
371 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:16:57 ] どこの中二病患者?
372 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:27:33 ] 英語もダメ。スキルもない。出来ないと暴れる。最悪だな。
373 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:38:52 ] >>370 そろそろウザイって言われてることにさっさと気づけよ、邪魔なんだよ。
374 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:54:43 ] お前らだってできねーんだろ?
375 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 15:55:15 ] 煽っても無駄なのにね
376 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 16:02:33 ] >>368 なんでUNIX系シェルとか依存性の強い物をBuildしようとするかな・・・ たぶんMingw用のglibcヘッダとかライブラリが必要だと思うよ。 たしかどっかにあったはず。 あと binutilとかバグがあるバージョンもあるから、そのあたりも変えてみたら。 binutilは上記のものとかなくてもbuildできるはず。
377 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 17:04:33 ] ごめんな。感情的になってしまった。 確かに俺は頭悪いが、>>368 みたいに親切なやつもいるから またがんばるよ。
378 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 17:33:01 ] いみふめい
379 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 17:47:15 ] >>368 暇だからビルドしてみた。 msysDVLPRとbisonとflexを追加。 www.mingw.org/MinGWiki/index.php/bug-termios_h このバグでちょっとハマった。 おしまい。
380 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 17:51:13 ] っていうかここに全部書いてあった。 www.mingw.org/MinGWiki/index.php/Build%20bash このページすら読めないようならまず英語の勉強した方がいい。
381 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 18:10:50 ] おお、みんなありがd。 >>379 俺もこれはやった。msys/includeじゃなくてmsys/lib/gcc-lib/...の方をこれで直して少し進んだんだが、 そのあとやっぱり失敗した。 >>380 俺もそれは読んだよ。gnuwin32のflexとbisonいれてtermiosも>>379 のように修正。 だがだめだった。 www.mingw.org/MinGWiki/index.php/MSYSBuildEnvironment ここがちゃんと理解できてないからなのかだめだ。 >>376 glibcのmingwバージョン探してるが、みつからない。
382 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 18:27:51 ] >>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コンソールからビルド。 違うところがあったら教えてくれ。
383 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:05:38 ] はっきり言ってチョーウザイ。 日記はmixiでやれって言ってんの。 おまいには無理、それでいいだろ。
384 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 09:57:36 ] >>382 念のために書いておくけど、ちゃんと ./configure してからmakeしてるよな? まぁ基本的なことだから大丈夫だとは思うが。 それから msysDVLPRを MinGW5.13の上に上書きするのはちとマズいかもな。 msysDVLPRにも gcc及びライブラリが入ってるから。
385 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:16:22 ] もちコース。./configure、make、make installぐらいは知ってるぜ。 msysDVLPRはmsysの方に入れてるんだがこれって間違い? MinGWiki読むとmsysの方に解凍してるみたいだが。
386 名前:デフォルトの名無しさん mailto:sage [2007/12/27(木) 10:18:12 ] でもbashのビルドはINSTALL.MSYSにしたがって、一応msysrlsbldっていうスクリプトやってるけどな。 中身は結局configure、makeみたいな感じだ。
387 名前:デフォルトの名無しさん [2007/12/28(金) 23:45:45 ] Mingwでソケットを使おうとしたら使えない! インクルードファイルがみあたらないのですがなんででしょう・・・。
388 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 01:14:53 ] MinGWなんだからwinsock使えよ…
389 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 02:43:17 ] 基本的過ぎる質問だと思うのですが 検索してもわからなかったので書き込ませて頂きます cygwinのgccを使ってC,やC++の開発を行うときのライブラリは やはりcygwinのそれっぽいのをとってくるんでしょうか? それとも別のIDEからライブラリ部分を持ってきたりするんでしょうか? windows.h 関係が欲しいのですが 通常はどこで手に入れるものなんでしょう?
390 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 02:53:46 ] w32api
391 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 08:17:47 ] >>390 ありがとうございます。適当に必要なものとどこからでも良いので とってくればOKなんでしょうか? とりあえずcppunitとw32api(3.9-1)をcygwinのsetup.exeからインストールしたんですが cygwin\lib\w32api 配下に windows.h が存在せず どこから手に入れればよいのか困っています 「普通はここから持ってくる」そんな場所はありますか?
392 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 08:27:55 ] どんなオプションを選んだかなんて覚えていないけど、 特に何もしなくても<windows.h>をインクルードできるし、 特にライブラリ指定しなくてもWin32 API使えている。
393 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 10:50:40 ] $ find /usr/include -name windows.h /usr/include/w32api/windows.h
394 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 11:05:03 ] >>391 はなんでヘッダファイルをlib配下でのみ探したのだろう
395 名前:389 mailto:sage [2007/12/30(日) 17:38:53 ] >>392 何が違うんでしょうか…? 俺にはさっぱりです >>393-394 それは>>389 がアホだからに他ならないわけで…。 …ありがとうございました わからなかったのでPSDK入れようとしてました。 結局こんな感じでコンパイルしたら動きました g++ test.cpp -I/usr/include -I/usr/include/mingw -v includeされているパスが色々出てきて それらがどこで設定されてるのかがイマイチわかっていませんが おいおい調べていくことにします
396 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 17:57:30 ] >>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 mailto:sage [2007/12/30(日) 19:07:24 ] >>396 なるほど解説ありがとうございます。 初めに /usr/include だけを使った所 windows.h が読み込めて その後に #include <tchar.h> する必要があったので /usr/include/mingw を読み込んでました。 /usr/include/mingw のみ -I すればコンパイルできました。 -mno-cygwin をつけるだけでもOKなのも確認しました。 クロスコンパイルやらなんやらの問題みたいですね。 とりあえず色々眺めてみることにします
398 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 20:04:19 ] >397 POSIX API を使うつもりがなくいなら -mno-cygwin を付けた方が cygwin1.dll をリンクしないでいい分ライセンスとかいろいろ楽。 作りたいアプリケーションに応じて選んでくれ。
399 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 20:20:31 ] POSIX APIを使わないつもりがなくいときはどうしたらいいでしょう。
400 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 20:43:54 ] gccでデバッグオプション(-g -O0)を付けてコンパイルしたいのですが、 いったいどうやればいいのでしょうか? いまのところはMakefile.amのINCLUDE変数に'-g -O0'を追加しているのですが、 明らかにおかしいので正しいやりかたを教えていただきたいのです。 環境はubuntu + gcc + autotoolsです。 (Linux板も探したのですが、適当なスレが見つけられなかったため こちらに質問させていただきます)
401 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:02:09 ] 大抵のMakefileなら、CFLAGS辺りに書けばよさそうだが。
402 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:35:22 ] autotool なら環境変数から引っ張ってきてるよね CFLAGS="$CFLAGS -g -O0" ./configure 俺はこうして使ってるけど
403 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:35:26 ] >>400 この場合 Autoconf/Automake/Libtool スレあたりが適切かな…?
404 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:49:40 ] >>401 そうですよね >>402 CFLAGS="$CFLAGS -g -O0" ./configure のやりかたでできました。 ありがとうございました。 >>403 すいません。次から気を付けたいと思います。
405 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 02:00:32 ] よくあるのは configure に --enable-debug 付けると デバッグオプションが付くように作ってあるとかかなぁ
406 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 20:05:29 ] wxWidgetsをリンクするために 'wx-config --cppflags'の出力されたものを 作成ファイルのMakefile.am内オプションに追加したいのですが いったいどうやればいいのですか? 何度か同じことをする必要があるので 共通の変数か何かに設定できるとうれしいのですが。 (他のスレでも聞いたのですが、全く反応が無いのでマルポしています)
407 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 20:42:20 ] >>406 wc-config の出力結果を Makefile.am に書いたら意味ないだろw configure.in を書いて configure 実行時に wc-config を実行してその結果 がMakefileの変数CXXFLAGSやLIBSに展開されるようにしてやればいいんじゃね? あと autotools の使い方を基本から勉強しなおしてくれ。 そもそも autotoolize する必要があるのかってところから見直すといいかもしれん。
408 名前:407 mailto:sage [2008/01/01(火) 20:43:27 ] wc-configってなんだ… wx-config ね
409 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 23:42:35 ] >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をリンクして生成 と少し複雑です。
410 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 01:29:31 ] 他のスレでもって、wxスレでもautoconfスレでも見かけなかったなぁ まぁ別にどこでもいいんだけど
411 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:11:52 ] 探したら pc11.2ch.net/test/read.cgi/tech/1148393695/ にいた… >>409 基本的に広い範囲で移植性を確保しようと思ったら大変なのはどのツール使っても同じなの はその通りなんだけど、どの程度の移植性が欲しいのかってところかな? autotools使うなら本でも読んでじっくり取り組んでくれ。 - www.amazon.co.jp/Autoconf-Automake-Libtool-Gary-Vaughan/dp/4274064115/ あまり出来のいい本でもないけど…
412 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:30:35 ] >>411 基本的には Windows(cygwin), Linux, FreeBSD, Mac あたりで使えれば嬉しいのですが。 あまりマイナーな環境に対応するのは大変ですしね。 いい環境が見つかるまでは、マニュアルと本でがんばりたいと思います。
413 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 10:20:29 ] WXCXXFLAGS="`wx-config --cppflags`" ・・・ではないのかな 試してないけど 俺なら AC_PATH_PROG で wx-config あるかチェックするかな
414 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 15:12:07 ] >>413 ありがとうございます。ただ、それでもダメでした。 (>>409 のWXCXXFLAGSはWXCPPFLAGSの間違いでした。すみません) Makefile.inを見ると変数自体はちゃんと出力されているのですが その中身がどうも空のようです。 Makefile.amではどちらか分からないので 一応@WXCPPFLAGS@と$(WXCPPFLAGS)の両方の形式で出力させています。
415 名前:414 mailto:sage [2008/01/02(水) 16:27:37 ] テストプログラムを作成しました。 原因の分かる方いましたら、是非教えてください。 www.uploda.org/uporg1184897.tar.html
416 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 17:00:06 ] >>415 configure.ac の中身 WXCPPFLAGS=`wx-config --cppflags` - 変数と'='の間にスペースは入れない - 展開はバッククォート 普段UNIXライクOS使ってないならアレだがシェルスクリプトの基本を勉強する必要があるかも
417 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 17:02:34 ] >>415 そうそう Makefile.am の方は @WXCPPFLAGS@ でよくて $(WXCPPFLAGS) はいらない
418 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:37:44 ] >>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 ] こっちの方が正確だったな ja.netbeans.org/ Net BeansIDE V6 R3→表記ミス 組込系なら制約が有るかもしれんな。 ま、その辺り臨機応変にな。 人間がやるより早いぞ。
421 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 09:54:43 ] >>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
424 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 21:25:18 ] >>423 autoconf/automake 使って ./configure && make all && make install って, やればインストール出来るようになってる という意味ではないのか?
425 名前:デフォルトの名無しさん [2008/01/04(金) 21:45:50 ] >>424 個人の造語を空想で断定しては恥かくだろう? 俺はレスの文脈からオーソライズと認識したまで。 何ならそのスペルで英和辞典なりコンピュータ用語事典を 探して見たら良い。 一生掛かっても見っからないことは断言できる。 ま、そんなチンケな話で揉めても仕方ないのでここで ペンを置く。
426 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 22:07:03 ] うるせーよググれカス
427 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 22:08:42 ] >>425 レスの文脈からautotool-izeとしか認識できなかったがな。 オーソライズってのはauthorizeのことか?だとしても意味が通らんな もっと文脈読まないと恥かくぞ?
428 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 22:11:01 ] >>417 その情報は古い。 Makefile.amでは、$(WXCPPFLAGS)と書くのが今風です。 Makefile.inでよきに計らってくれるので。 そうすると、$ make WXCPPFLAGS="-I/anotherdir/include" なんかが使えます。
429 名前:デフォルトの名無しさん [2008/01/04(金) 22:13:26 ] >>427 ふふ、暇なオジンやな? 本件にレスして道ズレにしようちゅう魂胆かなw まあ、おまえが口べただと言うことは良く解った。ググった上でのレスだw>>426
430 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 22:22:17 ] 冬休み学生のへたくそな煽りにわざわざ釣られるなよ…
431 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 23:13:08 ] >>423 これほど「プギャー(AAry」を貼りたくなったレスは初めて見た希ガス。
432 名前:デフォルトの名無しさん [2008/01/05(土) 01:06:06 ] 世代間ギャップだろw
433 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 01:14:29 ] >>425 この辺を理解して出直してこい www.catb.org/~esr/jargon/html/construction.html
434 名前:デフォルトの名無しさん [2008/01/05(土) 02:27:02 ] ↑この粘着馬鹿きも
435 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 08:05:03 ] お前も十分粘着だよ。
436 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 10:25:14 ] ageてる人はわかりやすくて良いな
437 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 13:13:44 ] 4+3=7
438 名前:デフォルトの名無しさん [2008/01/05(土) 17:53:22 ] 新年から運営バイト乙 さくらも必要だからな2ちゃんにはw 車 寅二郎
439 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 18:17:23 ] To you cotton I dead no death she.
440 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 10:13:59 ] 最近気づいたんだけど、速いCPUでCygwinのgcc使ってコンパイルするより、 遅いCPUでLinuxのgcc使ってコンパイルしたほうが速いのね・・・ 体感的にはCygwin@X2 3800+ < Linux@CelD 2.4GHz, Cygwin@CelD 2.4GHz < Linux@P3 900MHzくらい -pipeつけたらちょっとマシになったけど、それでもやっと同じくらい。 やっぱstat(2)とかが効いてるのかね?
441 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 10:39:27 ] Windowsはプロセスの起動が遅いうえに Cygwinでエミュレートまでしてるからかなり遅くなると思うよ
442 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 11:50:41 ] cygwinと比較してる時点でバイアス満載。
443 名前:デフォルトの名無しさん [2008/01/06(日) 12:14:27 ] MinGW使え
444 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:29:43 ] 普通は、fgetc()をループで回してもfgets()やfread()を使っても(I/O速度で制限されるので)大差ない時間で処理できるが、 cygwinに限っては、fgetc()版は遥かに遅くなってしまうからね。
445 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:35:36 ] なんで?
446 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:02:26 ] エミュレートしているからでしょ。
447 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:26:53 ] それはfgetcが遅くてfreadが遅くない理由にならなくね?
448 名前:デフォルトの名無しさん [2008/01/06(日) 19:02:11 ] >>447 なんでそう思う?
449 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:13:11 ] cygwinはファイルの読み書きは特に重いよね。MinGWにすると凄い速くなる。
450 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:35:46 ] >>447 freadも遅いがエミュレート+ループでfgetcが遥かに遅い理由にならなくね?
451 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:47:21 ] fread()一回では、エミュレートのオーバーヘッドは1回分であることが期待できる。 多くても、BUFSIZごとに1回だろう。 fgetc()では、毎回の呼び出しごとにオーバーヘッドが発生する懸念がある。 ungetc()のために毎回余計に読み込まなくてはいけないと言う事情がこれに拍車を掛けるだろう。
452 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:18:40 ] そゆのってオーバーヘッドのかからない層で バッファリングすると思うんだけど・・・。
453 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:21:49 ] いや、そうじゃないからこそ、cygwinのエミュレーションは問題だといっている。
454 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:18:45 ] 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 ] >>443 MSYSもいっしょに
456 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 03:31:02 ] >>451 ソースを読んでどこが悪いとか具体的に確信を持って言ってる? なんか勘違いしてる気が…
457 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 05:35:00 ] そのへんを計測してみた人どこかにいないかな
458 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 06:23:28 ] なんかどっかのスレでも書いた気がするけど 俺のVista(HPx64)でMSYSちゃんが上手く動いてくれない
459 名前:デフォルトの名無しさん [2008/01/07(月) 10:14:15 ] XPならHomeでもおk
460 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 10:27:17 ] MSYS1.0.10に1.0.11の何か上書きしたらイケましたわ。
461 名前:デフォルトの名無しさん [2008/01/07(月) 13:00:45 ] 使いもしないツールを多く含んだメタボ気味なコンパイラ使うより いいかもね
462 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:20:59 ] 少しスレ違いかもしれませんが質問させてください。 環境は、 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 何が原因なんでしょう。。打つ手なしっす。
463 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:33:27 ] -lの方が先に指定されていたりはしないよね?
464 名前:462 mailto:sage [2008/01/09(水) 01:08:24 ] >>463 -lstdc++を一番後ろに置いてます。 not foundが出るわけではないのでライブラリは見つけてるはずなのですが、、 コンパイラのインストールからやり直すべきなのでしょうか?
465 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:13:59 ] g++コマンドでリンクすりゃ、libstdc++を明示する必要はないはずだが。(勝手にリンカに適切なオプション渡してくれる)
466 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:31:54 ] >>465 一度g++に切り替えて試したときもlstdc++を付けたままで、まったく同じエラーが出ました。 早速明日外してやってみます。
467 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:52:52 ] >>462 アンダースコアの数が違うからリンクできるように見えない。 マップファイルとかアセンブリのソースとか確認しないとわかんないね。
468 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 21:12:22 ] バージョンが合ってないとか
469 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:14:59 ] C/C++の開発環境を整備:MinGWとEclipse CDT builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20364539,00.htm
470 名前:デフォルトの名無しさん [2008/01/13(日) 16:32:21 ] UACが有効なVistaでcygwin使うとき、sudoみたいに管理者権限を動的に(必要なときに)与えるようにしたいんです。 ここで間違えないで欲しいのは、実行したユーザーが属するAdministratorsが保有するACL管理下の権限であって、Administratorの強制執行権限ではありません。 引数をコマンドとして実行するだけのプログラムにマニフェストを組み込んでもcygwinから実行するとNo permissionでキャンセルされます。 runasではadministratorでの実行は可能ですが、条件に合いません。 何かいい方法は無いでしょうか?
471 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:36:11 ] VisualStudio, gcc, vim, Cygwinで開発しています。 MinGWというのは使ったことがあるのですが、メリットがよく分かりませんでした。 上記の開発ツールに加えてMinGWも使うとしたときのメリットにどんなものがありますか?
472 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:46:31 ] Cygwinというのは苦肉の策であって、 例えばパス名の区切りがスラッシュになるなど、環境との親和性に問題がある。 VisualStudioはアクチがあり、法外に高額で、 かといってラーニングやスタンダードはライセンスにいろんな制約がある。 ただしカネがあるなら最適化他の面で圧倒的に有利だ。 gccってNTリソースパックのgcc? NTのPOSIXサブシステム用はOSの汎用性がない。 MingWは完成度さえ高ければ素晴らしいのだがw ハローワールドで数メガとか恐ろしいことになったりするw
473 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:18:13 ] >>471 その列挙の意味がよく分かりませんが、VSとcygwin上のgccとvimを併用してると解釈します。 ja.wikipedia.org/wiki/MinGW#Cygwin.E3.81.A8.E3.81.AE.E6.AF.94.E8.BC.83 ↑cygwinとmingwの比較です。2つは哲学が異なります。 cygwinはmingwに比べwindowsシステムとの互換性が低い(パスとか)のでwindows向けの開発であれば避けた方がいいかもしれません。 しかし、cygwinにmingwが包括されています(詳しい位置づけはよく分かりませんが)。 dllの不要化やWindows APIの利用も可能です。cygwinとmingwを併用する利点はあまり無いと思います。
474 名前:471 mailto:sage [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が気になりだした次第です。
475 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:20:30 ] 素直にVS使っとけ。どうせ2008も無償版が出るんだから。 POSIXを意識しないならWindows上でまでgcc使う必要はない。
476 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:43:18 ] >>472 ハローワールドで数メガとかならねーよw # あ…Javaで書いてgcjでコンパイルとかしたらなるか
477 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 02:33:08 ] デバッグ情報てんこもりとか
478 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:08:49 ] [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
479 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:10:45 ] >>471 VS と MinGW の両方でコンパイルできるコードが割と簡単に書けるところが MinGW のメリット。 MinGW では基本的に Win32 API を使う。 スレッド、WinSock2、DLL のロードなどは Win32 API を利用するので VS 用と MinGW 用のコードの差分は小さくなることが多い。 コンパイラ依存の部分を #ifdef で分ければ大半のコードを共用できる。 Cygwin は使ったこと無いのでパス。
480 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:43:38 ] 逆に、cygwinだとWinSockを使わないでソケット周りを書けるのが魅力。 要は、Linuxと同じソースでいける可能性が高い。
481 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:47:17 ] >>474 windows用のソースをwindows用にコンパイルするのがmingw、勿論VSも linux用のソースをwindows用にコンパイルするのがcygwinのgcc cygwinでもwindows用のソースをコンパイルする事はできます、そこで使われているのがmingw このcygwinのmingwが本家と同一なのかどうなのかはよく知りませんが。 gcc --target-help の最初の10行程を見てみてください、参考になるかと思います。
482 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:56:41 ] 一部のファイルをインクルードすると failure to convert cp932 to UTF-8 というエラーが発生するんですが これは何が原因なんでしょう? 別のエディタで文字コードをUTF-8にして保存しても直りませんでした
483 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 05:46:45 ] 改行コードかも
484 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:25:37 ] >>483 阿呆ですか。 >>482 --input-charsetは?
485 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:23:08 ] いやまじであるぜ? 改行コード
486 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 14:22:35 ] >>482 「一部のファイル」ってのを明確すると話が早かったりするかも。 boostだったりしない?
487 名前:本田 [2008/01/17(木) 17:40:38 ] >COMプログラマの解説書 >Crispin Goswell >Microsoft Office Product Unit >1995年 春 >1995年9月13日改訂 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オブジェクトを実装する良い方法をいくつか示しながら解説するようにしてあります。
488 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 18:01:35 ] >>482 input-charset を CP932 として使っていながら、欧州由来のコードで CP932的に不正なものを含むソースをコンパイルしたんだと思う。 ffmpegの何かのヘッダとか。
489 名前:デフォルトの名無しさん [2008/01/20(日) 14:26:15 ] エクスプローラーを使っているときに 今見ているフォルダでCgywin窓を開きたいのですが どうしたらいいですか?
490 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 15:01:59 ] アドレスバーからコピーして、cdすれば?
491 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 15:39:29 ] >>489 cygwin hereでググれ
492 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 19:41:55 ] 俺はこうしてる [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\""
493 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:47:51 ] 窓の手の流用か
494 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 02:51:02 ] あれ、なんでばれたんだろう? 、と思ったら書いてあったねハッキリと
495 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 01:51:09 ] MSYSからgetchとかkbhitを拾うのはどうしたらいい? コマンドプロンプトではできることが MSYSでは上手くいかないことが意外に多い printfは必ずfflushも書かないと表示されないし・・・(TT
496 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 05:18:27 ] 毎回のようにfflushするくらいならsetvbufに_IOLBFしとけ。 で、getchやkbhitはC/C++にもPOSIXにも準拠していないし、Win32にも無い。 強いて言えば、DOSのデファクトスタンダードだったので残してある、というだけ。 Win32APIを使わないとするなら、 conio.hじゃなくてcursesとかを使うんじゃないの?知らないけど。
497 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 11:11:00 ] >>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 とでていて設定が反映されてないことが原因なような気がするのですが、どのように設定するばよいか分かりません
499 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 15:58:46 ] そういえばstderrはバッファリングされないからflushする必要もないよね
500 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:13:01 ] でなきゃ困るだろ.そもそも >printfは必ずfflushも書かないと表示されないし・・・(TT は,それが当たり前だということを知らずに泣いてるだけの話だろ
501 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:20:24 ] >>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ファイ ル単体で動く形にコンパイルしたいのです。 chaosweb.complex.eng.hokudai.ac.jp/~hagi/contents/memo-cygwin.html#sl 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 から利 用できるようにするには、どのように何を設定したらいいのでしょうか?
503 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:04:14 ] >>502 gcc の -I オプションで curses.h があるディレクトリを指定
504 名前:502 mailto:sage [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 今度はどこに何を設定したら良いでしょう?
505 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 00:01:20 ] 1を聞いて10を知れ、とは言わないがちょっとな・・・
506 名前:502 mailto:sage [2008/01/31(木) 00:46:02 ] ごめんなさい、図々しいお願いですね。 gcc の man を見ているのですが、ライブラリの検索パスを追加するオプショ ンが見つかりません。 また、C:\Program Files\gnuwin32 の下に pdcurses に相当するライブラリが あるのかと思ったのですが、libpdcurses.a というファイルが見つかりません。 行き詰ってしまいました。
507 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 00:49:24 ] -L でしょ?
508 名前:502 mailto:sage [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 たぶん、正しいヘッダをインクルードすればいいと思うのですが。
509 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:48:36 ] >>508 > たぶん、正しいヘッダをインクルードすればいいと思うのですが。 そう思うんだったら、includeディレクトリの中でsleep()の宣言を探す べきでしょ。たぶん無いけど。
510 名前:502 mailto:sage [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 上だと何もせずにコンパイル、実行できましたので。 今日はいったん中止します。
511 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 08:33:38 ] このまま続けると嫌われるよ。 おそらく、初心者板の方が適している質問と思われ。 # -Iや-Lオプションなんて、cc時代から定番のオプションだし。 # CygwinやMinGWの問題か切り分けられて無いし。
512 名前:502 mailto:sage [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'
513 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 13:17:19 ] >>512 そのpdcursesにスタティックリンク用のライブラリが添付されてない限 り、キミには無理。
514 名前:502 mailto:sage [2008/01/31(木) 13:22:08 ] ありがとうございました。dllは諦めます。 あとはusleep(20000)ですが、これはどこか初心者スレを探して質問します。
515 名前:502 mailto:sage [2008/01/31(木) 15:17:52 ] 先ほどの者ですが、解決しました。 #include <windows.h> ... Sleep(20); Windowsプログラミングに詳しい知人にアドバイスされ、このように修正したと ころ、見事に動くようになりました。 どうもお騒がせしてすみませんでした。ありがとうございました。
516 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 15:59:00 ] 最初からそいつに聞け糞が そいつはそいつで、掲示板で聞けようぜえ と思ってるだろうがな
517 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:23:57 ] 「mingw sleep」でググるだけで、ヒントがたくさん出てくるんだけどなあ。
518 名前:502 mailto:sage [2008/01/31(木) 18:53:51 ] ごめんなさい、訳があって急ぎだったので、無神経な質問をしてしまいました。 ご迷惑をおかけしました。 今度Java質問スレで、超初心者にていねいに答えますので、それで埋め合わせ にさせてください。
519 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:08:57 ] 人に教えてる暇があったら勉強しろ
520 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 09:18:44 ] 以上 >502 の日記からお伝えしました
521 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 07:20:34 ] 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 mailto:sage [2008/02/02(土) 08:38:29 ] すみません自己解決しました。 System32にCygwin1.dllがあったのが悪かったようです。
523 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 19:57:57 ] guileのinfoにある例(インタプリタを作るだけ)をmingwでコンパイルしたら sys/select.h ieeefp.h が無いと言われてしまいます。 確かに/includeにも/mingw/includeにもそんなファイルはありゃしませんが。 mingwじゃlibguileは使えないのでしょうか? バージョンは gcc: 3.4.2 guile: 1.8.2 です。
524 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:08:18 ] _____ ___ <ー、\\ヾiγ/rニミ \ヾヘヽヽリ川///γ >川/ ̄"""" ̄「リ (ヘir-=o=ッィ=o=j _ハ| `ー/ ii、i <\ ヽヽ `ー′/ \ヽ \  ̄ ̄/∩へ Cygwinじゃ駄目なのか? __ii  ̄/二ノ レ< guileのmakeに必要な環境やライブラリはあるのか? ヘヘヘ\ヽニ>-イ|( Y/) ノ// / ヽ_ノ|ヽハ/) ノ ̄ `ー | |ヒ/
525 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:13:56 ] >>524 試しにcygwinでやってみたら、gmpを入れてないのでハネられます。 まあ、gmp入れてcygwinでやればいいだけなんだろうけど。 主力環境がmingwなのでmingwでやりたいなと。
526 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:20:56 ] 敗因は2つだ - >>525 は sys/select.h が何なのかわかってない - >>525 は mingw がどんな位置づけにあるものかもわかってない
527 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:31:43 ] guileを使うのにPOSIX環境である必然性があるのかな
528 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:10:01 ] ないと思うが…
529 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:46:04 ] では、mingwの位置づけ云々は関係ないような。 select.hを使わないようにconfigureできないものか。
530 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:23:46 ] >>529 mingwの位置付けが判っていたら当然そういう風に行動するだろ? ってか guile をビルドの話なのか? guile をビルドするときなら configure --disable-posix とかあった気がするが…
531 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:24:34 ] >>530 sourceforgeのmingw用にビルドされたguileをインスコしてlibguileまで一緒に入っているのにselectがないとかもうね、なんなんだと。
532 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 05:34:13 ] じゃあきっとそのlibguileは --disable-posix で作られてるんだろ?
533 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 12:51:39 ] >>532 guileの意義がわかんねーなら上から目線で語るなよwwww
534 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:33:53 ] …と、>>533 が最上位から申しております。
535 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:04:39 ] 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です。 どのようにすればコンパイルできるようになるのでしょうか?
537 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 05:47:34 ] >>535 www.cygwin.com/ml/cygwin/2007-11/msg00180.html
538 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 08:22:53 ] >>536 ライブラリのサーチパスは指定しているけど、ライブラリそのものを指定していないじゃん。
539 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 09:52:41 ] >>537 Cygwinで-mno-cygwinを使う代わりに本物のMinGWを使うことで解決できました。 ありがとうございました。
540 名前:デフォルトの名無しさん [2008/02/10(日) 13:45:20 ] >>538 ありがとうございました。無事コンパイルすることができ、実行もできました。
541 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:17:56 ] ckのソースどっかに落ちとらんかのー
542 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 00:44:21 ] どぞ www.ch-werner.de/ck/
543 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 10:17:09 ] ん? ck違い!? とりあえずサンクスコ
544 名前:デフォルトの名無しさん [2008/02/23(土) 09:23:36 ] 浮動小数点演算を行なうルーチンをコンソールアプリ(main関数)から呼んだときと Win32 API で書いた GUI アプリから呼んだときとで計算結果が違うという問題に 悩まされています。どなたか解決策をご存じないでしょうか。 問題を再現する、できるだけ小さなプログラムを作りました。 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 の計算結果がおかしいようです。 どなたか解決策をご存知の方がいらっしゃいましたらご教示下さい。よろしくお願いいたします。
545 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:53:13 ] 面倒だからソースは見ていないけど、どちらかはFPUで計算を行いどちらかはSSEで計算を行なっていると思われる。 コンパイルオプションで強制できるから、必要なら強制すればいい。 但し、doubleの精度を超えた領域の話なのでどちらも間違っているとはいえない。
546 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:55:30 ] ./test1 4.7474747474747475e-001 4.6969696969696967e-001 ./test2 4.7474747474747475e-001 4.6969696969696967e-001 gcc version 4.1.2 ごめん、役に立てそうも無いw とりあえずmap出力してdiff取ってみたらどうか
547 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:01:53 ] アセンブリ出力を見るだけだろ。常考
548 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:17:20 ] 同じになっちまった。 .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あたりでステップ実行すれば原因はわかるかと思う。
549 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:20:48 ] そういえば、全然関係ない話だけど MinGWのprintfで、%hhXとかうまく機能しない原因知ってる人いない?
550 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:00:51 ] msのcランタイムがc99対応じゃないから
551 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 11:19:49 ] msのランタイムって、FPUの精度を固定していないか? >544はもう一回動かしてもtest1のx[6]は違う値のまま?
552 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:01:31 ] 15桁目まで同じだからdoubleの精度としては問題ない。
553 名前:549 mailto:sage [2008/02/23(土) 12:03:17 ] C99以前ではhhxって使えなかったんだ。 知らなかった。
554 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:18:37 ] x86のFPUは、80ビット精度と64ビット精度が存在する。 SSE2は64ビット精度。 とかそのへんの問題かな? >>551 に一票。 浮動小数点演算の検算で精度気にしすぎると禿げるぞ。 ε使えε
555 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:55:41 ] テキストで出力すると計算の問題なのか出力関数の問題なのか分からんな。 バイナリで出力(あるいは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); }
556 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 12:56:53 ] _controlfp あたりでぐぐれ
557 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:05:31 ] VCとgccのデフォルトのFPU計算精度は異なるらしい homepage1.nifty.com/herumi/prog/prog90.html _controlfpでいじると同じ精度にできる
558 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:11:46 ] おー、それだそれだ、思い出した。
559 名前:544 mailto:sage [2008/02/25(月) 14:04:07 ] 皆さまコメントありがとうございました。>>556-557 の方法で解決いたしました。 使用していた Windows 環境では MinGW でコンパイルしたコンソールアプリは 53 ビット、 MinGW でコンパイルした GUI アプリと VC++ Toolkit 2003 でコンパイルした両アプリは 64 ビットの演算精度を用いていたようです。 別の Windows 環境で試したところ MinGW でも両アプリとも同じ計算結果になりました。 コンソールアプリを MinGW でコンパイルすると演算精度が 53 ビットになる環境がある、 確実を期すなら _controlfp を使え、ということですね。 髪がすこし減ってしまった気がします。本当にありがとうございました。
560 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 14:29:41 ] つーか、doubleの精度以上の処を云々すると禿げるよ。 どうせ微小誤差が付き纏うんだから適当な桁で丸めて表示するとかしないと。
561 名前:544 mailto:sage [2008/02/25(月) 15:57:08 ] >>560 おっしゃる通りです。 今回の件が気になってしまったのは、シミュレーションコードのデバッグ中だったためです。 実行環境やコンパイラが違ったら気にしないところですが、同じ環境で同じオブジェクトコードに 同じ入力データを与えているにも関わらず計算結果が違うことにとまどってしまいました。 原因はdoubleの範囲を越えた部分の誤差でしたが、この問題を調べるきっかけになった シミュレーション結果の違いはもっと有意な差だったので看過できませんでした。 育毛にはげみます。
562 名前:554 mailto:sage [2008/02/25(月) 21:54:36 ] >>561 > シミュレーション結果の違いはもっと有意な差だったので 俺は予言する もまいは禿げる。 肝心のアルゴリズム、あるいはテストベクタが草ってんじゃない?
563 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:13:26 ] >>561 IEEEに準拠するように80bitではなく強制64bitにするオプションがあったはずだが
564 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:18:47 ] >>563 >556-559
565 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 14:03:31 ] そんなあなたを禿増してあげましょう
566 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 02:29:06 ] >>541 発見しますた ttp://sohda.net/cygwin/dist/mirror/www.geocities.jp/meir/cygwin_ck/
567 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 09:16:50 ] OS再インスコしてdevcpp+SDLで以前のソースコンパイルしたらWinMain@16なエラーが('A`) int main(ryから始めてるし-mwindowsも付けてるのに cygwinでもインスコすれば変わるかなあ
568 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 10:14:40 ] -lSDLmain付け忘れ&-l順番ミスでしたサーセン SDL外したらコンパイル通って、sdl-config見てやっと思い出した
569 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 17:59:52 ] 相談じゃなくて雑談になるんだけど 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++で
570 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 18:09:00 ] stripしろよ ライブラリのdebug infoもな
571 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 18:30:48 ] なるほど、どうもー。
572 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 07:07:47 ] g++ 普通にビルドできるのか? それならなんで Cygwin のパッケージは 3.4 のままいっこうに動かないんだろう。
573 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 13:33:08 ] そのうち、stripしてもまだサイズがでかいがどうしてだ? といった ググれば5秒で分かるFAQを聞きに戻ってきそうだ
574 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 14:25:42 ] 嫌味だけは一丁前でな
575 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 17:16:47 ] >>572 できたよー そういや俺も昔クロスコンパイラ作ろうとしたけどビルド出来なかった覚えがあるな そんときは原因分からず仕舞いやったけど cygwinのパッケージはlinuxでビルドされてるらしいから3.4で動かない原因は別なんじゃない?
576 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 06:08:53 ] 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() によるシステムメニュー項目のグレーアウトができている方がいれば 方法など教えていただけないでしょうか?
577 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 06:18:22 ] すみません。追記です。 EnableMenuItem(GetSystemMenu(hWnd, FALSE), SC_CLOSE, MF_GRAYED); は正常に機能し、システムメニューの「閉じる」とタイトルバーの×ボタンがグレーアウトするようです。 となると「移動」とか「サイズ変更」がグレーアウト/無効化できないのは Windows API 自体の仕様なんですかね? もしそうだったらスルーしてください。Cygwin + MinGW 環境固有の問題かと早合点してしまったので。
578 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 17:36:49 ] Win32 API スレの管轄だろうな。 ま、それはともかく設定するタイミングが駄目だと思う。 ttp://msdn.microsoft.com/library/ja/jpwinui/html/_win32_getsystemmenu.asp?frame=true >GetSystemMenu > >状況によって、システムはウィンドウメニューの標準的なメニュー項目の一部を自動的に淡色表示にします。 >アプリケーションは、どのメニューも表示されていないうちに WM_INITMENU メッセージに応答することにより、 >メニュー項目を独自に選択したり淡色表示にすることができます。 ということで、WM_INITMENU でやればいいと思う。っつーか、普通のメニューでも項目の無効化等はそこでやると思うんだけど。
579 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:20:29 ] >>578 スレ違いの質問にお答えいただいて恐縮です。 仰る通り WM_INITMENU を受け取ったときに設定することで「移動」「サイズ変更」もグレーアウトさせることができました。 ただし、WM_INITMENU メッセージでは wParam に対象メニューハンドルが格納されるらしいのですが、 システムメニューに関してはこれは当てはまらないようです。なので、 if(wParam == (WPARAM)GetSystemMenu(hWnd, FALSE)){ ... } などとすると if 文の中身は決して実行されないようです。 よって、システムメニューを設定するだけなら wParam は無視すべき、ということみたいです。
580 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 13:46:42 ] WM_INITMENUPOPUPなら見分けがつくんでない?
581 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:43:40 ] >>580 アドバイスありがとうございます。やってみましたが、 if(HIWORD(lParam) == 1){ ... } というテストはうまくいくものの、wParam にはシステムメニューのハンドルが入っていないようです。 ですので、EnableMenuItem() などに渡すメニューハンドルはやはり GetSystemMenu() を使って自前で取得しなければ ならないようです。 また、WM_INITMENUPOPUP を受け取ったときに EnableMenuItem() を呼ぶと、タイトルバーから初めてシステムメニュー を呼び出したとき、システムメニューの表示位置が若干上にずれて、タイトルバーを覆い隠すような形で出てくるようです。 まあ2回目以降は正常に戻るので、気にするほどのことではないかもしれないですが…。 あと、WM_INITMENU の場合は対象がシステムメニューかどうか見分けが付かないので、自分で初回スイッチのような ものを用意して対処する必要がありそうですね。 それと、さっき色々試していて気が付いたのですが、WM_INITMENU または WM_INITMENUPOPUP を受け取ったときに EnableMenuItem() する方法だと、タスクバーを初めて右クリックしたときに項目が無効にならないようです。 2回目以降、もしくは初回であっても事前にタイトルバーからシステムメニューを表示させていれば EnableMenuItem() の設定が反映されるんですが…。 調べてみたところ、タスクバーが右クリックされたときには非公開メッセージ 0x313 が送られてくるとの情報があったので、 (参考: www.hey-to.net/ML-archive/vcppML/1999/msg03694.html ) 0x313 を捕捉し、そのハンドラで EnableMenuItem() などの設定を行い、 さらに DefWindowProc() にメッセージを処理させればよい…みたいです。 >>576 の環境でしかテストしていないのであまり自信がないですが、これだと一応タスクバー初回右クリック時も正しく 項目が無効化されたシステムメニューが表示されます。 とはいえ、非公開メッセージに依存するのも微妙な感じなので、いっそ WM_CREATE のハンドラで無効にしたい項目を DeleteMenu() してしまうのが一番簡単かもしれないですね。 長文失礼しました。Windows って難しいです。
582 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 15:22:25 ] >>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です パスは適当に通そうと思っています
586 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:14:48 ] MinGWインストーラはDownload Onlyを選べば、落とすだけを選択できるぞ あとは上書きで桶
587 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:18:07 ] >>586 おおありがとう! じゃあ遠かったHelloWorldも近づきますノシッ
588 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 13:50:57 ] ちょっとお聞きしたいのですが、mingwでは-Iオプションは使えないのでしょうか? g++ --help でリストに出てこないのです。 しかしg++ -I とすると argument to `-I' missing のような感じで、unrecognize option `-j' みたいな感じではでてこないので、使えるような気もするのですが・・
589 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 14:32:18 ] >>588 g++ -v --help で出てきませんかな。 正直 gccのオプションはかなり多いので g++ --version でバージョンを確認してから ぐぐるなり GCC online document www.gnu.org/software/gcc/onlinedocs/ から探すなりしてマニュアルを読んだほうがよいかと思います。
590 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 14:42:10 ] >>588 使える
591 名前:588 mailto:sage [2008/04/11(金) 15:00:25 ] >>588 さん >>580 さん レスありがとうございます。 使えるのですか。 -I使う場合は、Windows用に -IC:\Program Files\... みたいな感じで書けばよいのでしょうか? 上記の感じでやってみたのですが、うまくいかなく・・
592 名前:588 mailto:sage [2008/04/11(金) 15:01:37 ] >>588 さん→>>589 さん >>580 さん→>>590 さん
593 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 15:06:08 ] >>591 スペースが入ってるみたいだけど...
594 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 15:21:52 ] >>591 パスにスペースを含む場合は "" で囲むと聞いたことがあるけど -I"C:\Program Files\..." ではだめかな
595 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 15:48:56 ] 分割されなきゃいいのだから、空白をエスケープするだけでもいいかも。 それはさて、ディレクトリ区切りのバックスラッシュってエスケープする必要あるんでない?
596 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 16:17:38 ] スラッシュにした方がいいな -l"C:/Program files/..." ていうか相対パス指定できるように環境を整えた方が のちのち便利だと思う
597 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 17:43:01 ] レス下さった方々、ありがとうございます。 -l"C:/Program files/..." こんな感じでとりあえず目的のコンパイルはできるようになりました。多謝です。 相対パス指定のための環境構築について、検索してみたのですが、それっぽいのが出てきませんでした。 スレ違いで申し訳ないのですが、よろしければどなたか解説してるサイト教えて頂けると幸いです。
598 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 18:01:43 ] msysかcygwinをいれちゃう。 あなたならおそらくmsysのほうがおすすめ。 ふと思ったがmingw単体で使ってる人ってけっこういるんだろうか。
599 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:46:30 ] あっちの関連スレにここがあったから貼り返し。 Cygwin使っている人いますか? その18 pc11.2ch.net/test/read.cgi/unix/1184677144/
600 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 22:11:33 ] >>598 俺々、俺だよ msysはgccのsnapshotをコンパイルするときくらいしか使ってない
601 名前:デフォルトの名無しさん [2008/04/11(金) 22:17:04 ] msysはUNIX系用に書かれたアプリをWindows環境で makeや./configureするためだけにあるようなもんだから 純粋なWindowsアプリ作るときは、いらんだろ。 それともWindowsアプリ書くときも、mv や cp や sh コマンドを使うヤツがおるのか?
602 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 22:28:16 ] そこまで使うような奴だったらCygwinを入れているだろうしな。
603 名前:597 [2008/04/11(金) 23:26:58 ] レスありがとうございますー。 なるほど、msysからなら相対パスで指定できたのですか。 実はmsysは導入してるんですが、今コンパイルしようとしてるソースがeclipseのプロジェクトのもので、 eclipseのbuildセッティングからオプション指定しなければいけないが気がするのです。 eclipseからのオプション指定付きのコンパイルは、絶対パスでですが成功したのでとりあえず解決しました。 eclipseからも相対パスで指定できたら便利なのかもしれませんが、スレ違いなのでここではやめておきます。 色々ご教示くださりありがとうございましたm(_ _)m
604 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:11:57 ] よく分からないんだが、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 ではない。
606 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:54:08 ] >605 -mno-cygwin つければ cygwin1.dll 使わなくなるんだから、MinGW + msys ⊂ Cygwin とか混ぜっ返してみる。
607 名前:デフォルトの名無しさん [2008/04/12(土) 17:58:19 ] >>606 なるほろ。どうもです。
608 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 18:39:40 ] 全く混ぜっ返せてない気がするのは気の所為だろうか。
609 名前:デフォルトの名無しさん [2008/04/12(土) 23:38:33 ] >>605 nmake 使った事無いの?
610 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 02:43:01 ] なぜそこでnmakeがでてくるんだ?
611 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 03:50:56 ] >>609 聖徳太子って知ってる?
612 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 04:06:39 ] 知ってる。 人に非ずな美人な子供で同性愛者な上にマザコンな皇子でしょ?
613 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 05:10:58 ] 知ってる。 突然びっくりするぐらいブチ切れる人でしょ
614 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 15:09:40 ] 知ってる。 100万人が同時にしゃべっても聞き分けられた人でしょ
615 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 16:14:52 ] それってさ 聖徳太子が聞き分けられてる と気づいた人のほうが数段上だよね
616 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 16:58:47 ] みんなして同じことしかいってなかったんだよね
617 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 17:11:04 ] MinGWに付いているwindres.exeは windres --language=0411 ファイル名.rc とすればShift-JISのrcファイルを読めるけど、UTF-16のrcファイルは読めますか? languageオプションに指定できる値の情報がどこにも無くて、UTF-16に対応してるかどうか分からない… (ちなみにVC9のrc.exeは文字コードを自動判定してるようでShift-JISもUTF-16もオプションなしで読めるみたい)
618 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 19:35:39 ] windresのソースのこの辺り↓を見るしかなさげ? sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/winduni.c?rev=1.10&cvsroot=src sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/winduni.h?rev=1.7&cvsroot=src なんだかコードページしか指定できないように見える・・・。
619 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:28:10 ] G++でのコンパイルやリンク実行時に自分で作ったバッチファイルを引数として噛ませたいのですが、どのように書けばできますでしょうか?? どなたかご教示頂けると幸いです。
620 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:29:40 ] > G++でのコンパイルやリンク実行時に自分で作ったバッチファイルを引数として噛ませたい 詳しく
621 名前:619 mailto:sage [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の前になにか必要なのかな??という疑問です。
622 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:56:36 ] つMakefile
623 名前:619 mailto:sage [2008/04/14(月) 19:05:56 ] レスありがとうございます。 すいません、makefileがどんなものかは大体分かっているのです。 今回はバッチでどうしてもやりたい事情がありまして・・
624 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 19:11:17 ] 環境変数使うってのは?
625 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 19:12:55 ] もしくは、$1とかでファイル名渡すとか?
626 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 19:55:21 ] >>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 mailto:sage [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++でプログラム書けるのかが心配だが… 初心者なので大目に見てください(^^;) 環境変数ってのはなんの環境変数でしょうか??
629 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:24:07 ] >>628 eclipseにコンパイル、リンクオプションを設定するところがあるはずだから探せ。 -LC:/... とリンク先ディレクトリ指定のオプションだけのように見えるが、本当はリンクするライブラリもその「バッチ」とやらに書いてるだろ。 それだと.oより先にあったらダメだ。 それはwindowsだろうがなんだろうがダメ。 .oから呼ばれている関数をリストアップして、その後その関数をライブラリからワンパスで探すから。
630 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:27:21 ] >>628 >>627 を試してみたのか? バッチに渡した引数は %* の位置に展開されるのよ? >なるほど、バッチの中にg++も入れたりできるんですね。 とかいう時点でバッチが何か理解してないと思われ
631 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:39:07 ] 野球で振り回すあれでしょ?
632 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 01:13:11 ] >>630 バッチってバッチファイルのことじゃなくて、ライブラリのファイル名を羅列したファイルのつもりなんだろう。
633 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 03:16:00 ] チラシの裏 MinGWでコモンコントロール使うなら #define _WIN32_IE 0x0300 とか必須
634 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 03:37:30 ] チラシの裏 ncurses5.6 cygncurses-8.dll 文字化け 日本語 → use_legacy_coding(2) 追加
635 名前:デフォルトの名無しさん [2008/04/15(火) 10:11:30 ] EIPに入ってるアドレスから共有ライブラリやEXEのベースアドレスを調べたいのですが windowsのPSAPIを使うやりかたで良いのでしょうか? cygwinではこう書くみたいなやりかたはありますか?
636 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:35:20 ] Win32環境にCygwinかMinGWのどちらかを入れようと迷っているのですが、 何か判断基準になるものはありますか?
637 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:39:32 ] 両方入れて、自分で比較した方がいいんじゃないの?
638 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 19:49:07 ] 基本MinGWでいいと思う 別の用途でCygwin使ってる人はそのままCygwinを使う
639 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 23:13:21 ] CygwinはUnix環境として使うなら便利だけど、窓の開発したいだけなら開発環境に組み込まれてたりするMinGWのほうがいいんじゃね?
640 名前:628 mailto:sage [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) 追加 ありがとうございます!
641 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 22:41:46 ] >>640 %* や、バッチファイルのその他の機能の説明を読んだ方がよさそう。 Windowsの「スタート」ボタン→「ヘルプとサポート」 →検索窓に「バッチ」と入力して検索→「バッチ パラメータを使用する」 →検索窓に「シェル」と入力して検索 →「コマンド シェルの概要」
642 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 03:40:54 ] 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のデフォルト動作を非カラー表示に 戻す方法をご教授いただければ幸いです。
643 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 04:21:48 ] >>642 alias 打って実際の登録状況を見るとか。 set -x して実際に起動されたプロセスの引数を確認するとか。
644 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 06:52:13 ] >>643 このalias内容から、>>642 でも書いてるように.bashrcを読んでないと 思ったんですがねえ・・・どこから読んできたのやら $ alias alias ls='ls --show-control-chars --color -F' alias mc='. /usr/share/mc/bin/mc-wrapper.sh' $ set -x (なし)
645 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 08:40:49 ] .bashrcに echo hello とか入れてみれば読まれてるかどうか分かるんじゃ?
646 名前:デフォルトの名無しさん [2008/04/18(金) 08:55:12 ] 質問には「.bashrcが読み込まれているかどうか分かりません」なんて書かれてないだろう >>644 www.google.com/search?q=cygwin+bashrc+%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BE%E3%81%AA%E3%81%84
647 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 09:05:36 ] 【質問】 Xfce4を利用できない 【希望】 Xfce4デスクトップ環境を利用したい 【やったこと】 www.compuspec.net/reference/os/cygwin/installation.shtml 上記のサイトを参考にしました。 setup.exeより、リポジトリ「ftp://sunsite.dk/projects/cygwinports/」を追加し、 Xfce4関連のパッケージ全てをインストール。.bashrcに PATH=/opt/xfce4/bin:$PATH export PATH を追記し、bash上からパスが通っていることを確認。 $ startxfce4 を実行すると、xscreenserverがないとメッセージが出たので、 setup.exeよりxscreenserverを選択しインストール。 再度startxfce4を実行すると、X画面が表示されるものの下記のようなログが出て Xfce4が起動できていない。 ちなみに利用OSはWindowsXPでユーザ名は「root」としています。
648 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 09:08:00 ] 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 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のカーソル(×印)が表示されて停止 # img224.echo.cx/img224/5445/cygwin5bh.jpg
649 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 09:19:24 ] 理想 ttp://blawat2015.no-ip.com/~mieki256/diary/img/20050224_weirdx_screenshot_03.gif
650 名前:デフォルトの名無しさん [2008/04/20(日) 22:10:32 ] ttp://www.geekpage.jp/programming/c/helloworld.php ここを見て最初からやっていったのですが、コンパイルは出来たものの >CygwinだけではなくWindowsコマンドプロンプトで実行したい場合 のところにある「-mno-cygwin」を使おうとすると gcc: installation problem, cannot exec `cc1': No such file or directory と出てきてしまいます どうしたらいいでしょうか?
651 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 23:54:24 ] >650 必要なパッケージが足りてない。 -mno-cygwin が使いたい場合、gcc-core だけじゃなくて gcc-mingw-core も必要。
652 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 13:53:13 ] 都合でMinGWを使いたいんだけど、Cygwin導入済みのWindowsに入れたら競合が起こるかな CygwinパッケージにもMinGWがあった気がするけど、両方とも干渉せずスタンドアロンで使いたいっす
653 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 16:26:13 ] >>652 cygwinでmingwのコマンド類のある場所にパス通したりしなければ問題ない。 うちは普通に cygwin と mingw + MSYS が両方入ってる。
654 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:37:48 ] >>651 解決しました ありがとうございました
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によるリンクを成功させるにはどのようにすればよいでしょうか?
656 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 09:02:53 ] laファイル捏造が嫌なら libtool 自体を書き換えるしかないと思うが。
657 名前:デフォルトの名無しさん [2008/05/04(日) 16:29:31 ] i686-elfがターゲットなbinutilsを作ったのですがgccにこれを使うよう指示する方法が分かりません ttp://iwatam-server.dyndns.org/hardware/h8comm/doc/CrossDevel-jp.html/ch-inst.htmlとかを見ると オレオレbinutilsを使いたい場合gccも作らなくてはならない感じなのですがどうにかする方法はないでしょうか?
658 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 17:40:58 ] >>657 gccにはそういうオプションなどなかったと思うけど、 gcc -S でアセンブリソースを出して、 オレオレas でオブジェクトを作って、 オレオレld でリンクすればいいだけ。
659 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 18:40:18 ] specsのinvoke_asとlinker書き換えて -specs= で読ませりゃいいんでない?
660 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 12:21:35 ] 高速に質の良さそうな乱数を取得する方法を探しております。 「Mersenne Twister」というのに行き当たったのですが、もっと高速なものを探していたところ、 「/dev/rand」というものがあるというのを知りました。 下記に関し日本語サイト探しているんですが、なかなか詳しいところが見つけられません。 1./dev/randとはハードか何かで乱数作るんでしょうか? 2./dev/randはWindowsで使うことは出来ますか? また使い方は?
661 名前:デフォルトの名無しさん [2008/05/06(火) 12:26:41 ] 乱数スレで質問すれば誰か詳しい人がいるかもしれないよ
662 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 12:36:14 ] >>661 そうですか。 ただマルチになると申し訳ないので、2〜3日寝かしてレス付かないようなら移動しますね。
663 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 13:36:56 ] >>657 -B prefix と -b target ジャマイカ?
664 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 15:46:41 ] >>660 もうすっかり忘れたけどrand()は線型合同法かなんかだっけ? メルセンヌツイスタを見つけたならひと口に乱数と言っても 目的によって適不適があるというような注意書きを メルセンヌツイスタの作者が書いてるのに行き当たったり しているはずだが。
665 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 15:55:16 ] >>662 取り下げによる移動はマルチではない。 移動の方法としてはいくつか在るがたとえば ここに、「〜〜(移動先URL)へ移動しました」などと書いたうえで 移動先に「〜〜(ここのURLとレス番)から誘導を頂きました」 とでも書いておけばその時点でマルチではなくなる。
666 名前:デフォルトの名無しさん [2008/05/06(火) 16:06:09 ] 乱数スレの住人ってバカばっかりだからなぁ
667 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:08:18 ] >>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 ほら。もう、バカばっかり・・・
669 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 21:28:53 ] >>660 /dev/random /dev/urandom のこと? だったら、参考資料としてはこの辺とか。 ttp://www.linux.or.jp/JM/html/LDP_man-pages/man4/random.4.html とりあえずCygwinなら使えるが、Linux等と同じ動作をしてるわけでは ないと思われるため、品質や速度については不明。MinGWは知らん。 /dev/rand はぐぐってみると結構ヒットするけど、実在するの?
670 名前:デフォルトの名無しさん [2008/05/06(火) 23:01:34 ] 作ればできるよ。ああできるよ。何だってできるよ、作れば。
671 名前:デフォルトの名無しさん [2008/05/06(火) 23:51:01 ] >>669 作ればあります。
672 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 03:08:41 ] 作らんでもエイリアス張るだけちゃうん
673 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:09:13 ] WindowsにEGD移植されてないんだっけ?
674 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:19:35 ] すいません、MinGWにUTF-8を認識させるようにしたいのですが、そこらへん設定するにはどうすればよいでしょうか?? どなたか教えて頂けると幸いです。
675 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 16:23:27 ] >>674 MinGWに認識させるとは? gccのオプション指定で入力エンコードと出力エンコードを指定するって話なら判るんだけど。
676 名前:674 mailto:sage [2008/05/07(水) 16:47:30 ] レスありがとうございます。 >> gccのオプション指定で入力エンコードと出力エンコードを指定するって話なら判るんだけど。 分かりにくくてすいません、そんな感じのことを言いたかったのでした。 コンパイル時のオプションで設定できたんですか。 調べたら --input-charset, --exec-charset など、出てきました。 ありがとうございましたm(_ _)m
677 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 19:08:07 ] 不完全な質問にヒント程度のエスパー回答、そして解決報告 素晴らしい流れに心が洗われるようだ
678 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:24:33 ] ttp://sourceforge.net/forum/forum.php?forum_id=820558 > Testing: gcc-4.3.0-20080502-mingw32-alpha いきなり 4.3.0 ですかい
679 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:24:46 ] x64対応はまだかね?
680 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:00:27 ] おまいらソースを嫁 cygwin.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/fhandler_random.cc?rev=1.36&content-type=text/x-cvsweb-markup&cvsroot=src msdn.microsoft.com/en-us/library/aa379942 (VS.85).aspx 各種外乱使った暗号論的擬似乱数っぽい 暗号論的に優秀なのとMCやなんかで優秀なのは違ったと思うんで 用途によるはずだがそのあたりは詳しく知らない
681 名前:デフォルトの名無しさん [2008/05/09(金) 13:17:06 ] MinGWでのコンパイルってこの方法であってますよね? コマンドプロンプトで、chdir ソースファイルが保存してあるディレクトリまでの絶対パスまたは相対パス そしたら ソースファイルが保存してあるディレクトリまでのパス>gcc ソースファイル.C -o ソースファイル.exe これでコンパイルしてもエラーでるからコンパイルの方法が悪いのかなって思ったんだけどさ ソースファイルは本通りに入力したはずだからあってるはず。 もうプログラミング挫折しそうです。
682 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 13:31:28 ] エラーを貼り付けないと回答のしようがない。 コマンドライン慣れてないなら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 と表示されます。
684 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 14:14:33 ] 目的がプログラミングの学習で、 英語が全く分からない&英語を勉強する気はない なら VC++ 使った方がいい。
685 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 14:14:45 ] そりゃめげるわな zieaon.co.uk/MinGW-cc1plus.html PATH通せ
686 名前:デフォルトの名無しさん [2008/05/09(金) 15:22:57 ] ありがとうございます。 VC++ってC言語でもつかえるんですか?
687 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 15:29:17 ] 使えるよ でもスレ違い
688 名前:デフォルトの名無しさん [2008/05/09(金) 15:35:34 ] おぉ そうなんですか!! スレ違いになりますね;; みなさんありがとうございました。 VC++で頑張ってみます
689 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 15:57:33 ] 華麗にスルーされた俺カワイソス
690 名前:デフォルトの名無しさん [2008/05/09(金) 16:23:16 ] 大丈夫か?初心者にVCなんか勧めて。 どうせ今度は sprintf_s、strcpys、strcat_s・・・ でつまづくだろ。 オレなら Borland C++ Compiler を薦める。
691 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:13:24 ] gcc(ry
692 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:53:08 ] その前に日本語
693 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 01:38:33 ] 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; }
694 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 01:39:53 ] これを以下のようにコンパイルしました 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と表示されます。 どこがまずいのでしょうか?
695 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 02:49:43 ] >>694 main()に入る前にmalloc()が呼ばれることもあるので、そういうハリボ テ実装ではダメ。
696 名前:694 mailto:sage [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 mailto:sage [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と表示され、そこで前回と同じ症状となりました。 何かよい方法はないでしょうか?
698 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 10:15:40 ] 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); }
700 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:31:43 ] 既にCygwin環境があるWindowsで、「他者のCygwin環境でWindowsに移植されたソフトウェア」を実行しようとすると cygwin1.dllのバージョンの差異でエラー(fatal error - system shared memory version mismatch detected)が発生します。 既にCygwin環境があるWindowsで、それぞれが独立した形(スタンドアロン)として実行する最善の方法をご教授ください。
701 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 22:01:14 ] >>700 Cygnusにコンサル料払え。
702 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 22:32:49 ] >>700 Cygwin のバージョンを合わせるしかないんじゃね?
703 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 22:34:07 ] MinGWで移植できないか考える
704 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 23:33:16 ] >>700 かたっぽのCygwin1.dll消すんじゃあかんの?
705 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 00:09:35 ] >>700 その他者の移植したソフトウェアと一緒に他者のCygwin環境のcygwin1.dllを貰ってきて そっちがロードされるようにして起動すればいいんでない?
706 名前:700 mailto:sage [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を入れ替える方法しかない場合は、大人しくソースからコンパイルしマス。
707 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 06:10:22 ] いやだから、お互いのCygwinのリビジョンを合わせればいいって話じゃないの?
708 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 10:57:44 ] >>700 .local とか .manifest を用意すればOK。
709 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 17:23:58 ] >>706 そのソフトってcygwinのシェルから起動するのか? だとしたらパスの順番変えて付属のdllが先に見えるようにして起動すれば済む気がするけど… そうじゃないとしたら普通にcygwinをインストールした場合cygwin1.dllのある ディレクトリにパスが通ったりはしない(Windowsの環境変数の方のPATHね)からそんな 問題は起こらない気がする…
710 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 02:26:23 ] 挑発しているのでもなんでもなく 残念だがvirtualboxを使って複数のOSをシームレスに同居させられる今 わざわざcygwinを使う意味がまったくわからない。 古い Win環境でもcygwin使うより快適だよ 試していないならやってみるべきだと思うな。
711 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 04:12:26 ] なるほど、仮想マシンに Linux 入れてクロスコンパイル用 のgccを用意してwin32用のバイナリを開発するということだな? 確かに快適だろうがその環境を作れるやつがどの程度いるのか… # ここは一応 GCC のスレらしいよ?
712 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 06:00:07 ] 単にWindowsアプリケーションでPosixAPIを使いたいだけです
713 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 07:27:36 ] 単にシームレスにUnix系ツールを使いたいだけです。
714 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 11:13:00 ] 単にWin上でGCC系コンパイラーを使いたいだけです Cygは使ってませんし
715 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 13:36:32 ] >>712 つ Cygwin >>713 つ MSYS >>714 つ MinGW
716 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 13:49:31 ] それ全部このスレの話題だよな。
717 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 17:46:54 ] そもそもmsysってcygwinから派生したものだろ・・・
718 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 17:59:09 ] 敢えてWindows Services for UNIX
719 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 00:43:41 ] >>718 それなんてWine
720 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:52:12 ] CygwinもColinuxもSFUもWineも微妙… もっとwinとUNIXとが渾然一体になってるような ハイブリッドカーネルみたいなんは無いもんか……
721 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:44:53 ] もっと微妙になってしまいそうな気もするが…
722 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 03:51:12 ] cygwin1.dllはアッパーコンパチにして欲しいよ。マジで。
723 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 02:42:18 ] getrlimitのソースってどこにあるのでしょうか? glibcの中のgetrlimitは空実装でした。
724 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 03:40:27 ] >>723 どの環境のgetrlimit()?
725 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 23:02:09 ] 今日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' のようにしてもできません。どこが問題なのでしょうか?
727 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:07:27 ] >>726 なんで「\!*」?「$@」じゃないの? つーか、そんなへんなエイリアスつくってないで、Makefile書きましょう。
728 名前:デフォルトの名無しさん [2008/06/02(月) 22:14:25 ] Makefile書けば済む話ではあるんですけど…。glutやらSDLやら 目的別にエイリアス作っとけば、ちょこっとした作業が楽になるかな と思ったんです
729 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:39:08 ] >>726 せめてワンライナーなaliasなんかじゃなくシェルスクリプトにすれば 記述の自由度があがってもっと便利なものも書けると思うんだが 何かaliasで定義しないといけない理由とかがある?
730 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:40:09 ] SDL知ってるなら、それに倣ってgl-configでも作っておけばいいんじゃない $ gcc `gl-config` hoge.c で済むようになるけど
731 名前:デフォルトの名無しさん [2008/06/03(火) 10:13:59 ] >>729 理由は特にありません。 ただ、シェルスクリプトの使い方が良く分かってないのと、ファイルを いちいち作りたくないとかです。 >>730 おお、すごくいい感じな気がします。こっちの方がいいですね `sdl-config --cflags --libs`みたいなことですよね。これは、 どのような仕組みになっているのでしょうか?
732 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 10:51:25 ] Makefile一個書くのがそんなに嫌なのかな?
733 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 10:54:14 ] >>731 sdl-configの中身を読んでみましょう。 シェルスクリプトの書き方を習得しとくと、イロイロ便利だよ。
734 名前:デフォルトの名無しさん [2008/06/03(火) 11:28:18 ] >>732 ちょこっとしたテスト用ののソースのためにわざわざMakefile書くのが嫌かもです。 リンクするライブラリが多かったりすると… Makefile書くよりもコマンドの方が手軽かな、と私が勝手に思ってるだけです。 >>733 シェルは覚えたいですね。
735 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 11:30:02 ] >>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 ということなので、これを応用すればいいのでしょうか?
737 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 12:06:52 ] >>736 %: %.c gcc -o $@ $< ってMakefileに書いてみ
738 名前:デフォルトの名無しさん [2008/06/03(火) 12:36:59 ] >>737 おお、ありがとうございます。こんな使い方できるんですね。最初からMakefileに ついて調べとけば良かったorz これで解決です。 ところで、autotoolsってありますよね。あれの使いどころが良く分かりません。 大規模なソフトウェア->autotools使う。 趣味範囲のソフトウェア->自分でMakefileを作って流用する って感じなのでしょうか?
739 名前:735 mailto:sage [2008/06/03(火) 12:59:50 ] >>738 やっぱりそうだったのかw 道理で話が噛み合わないと思った。
740 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:01:53 ] >>739 知識少なくてすみませんw プログラムしたくてもMakefileを調べていたら全然進まないので、
741 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:02:35 ] やっつけでMakefile書いてきたツケが…
742 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:07:56 ] 事実上、 autotools->クロスプラットフォーム Makefile->環境依存 だとおもえばいいよ。
743 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:13:03 ] なるほど。じゃあ、Makefileについてちゃんと調べようと思います。
744 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:14:28 ] foo.Cが任意のディレクトリにあるとき、 Makefileをソースファイルと同じディレクトリに置かないと、make fooとはできないよね。 できるのならぜひ方法を知りたい。
745 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:19:17 ] 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
746 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:24:04 ] >>744 -fで指定するのが嫌で、alias make="make -f ~/Makefile"とかするのが嫌なら、 カレントにMakefileのシンボリックリンクでも置いておくとか。
747 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:24:26 ] >>744 vpathとか
748 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:34:01 ] >>746 aliasの存在を忘れていた。すぐ上でalias見たばかりなのに……。 ふだんはわざわざカレントにシンボリックリンク(ジャンクション)を作ってました。 とはいえ、カレントのMakefileを使いたいこともあるのでvpath使ってみようと思います。 こんな便利なものがあったとは。
749 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:43:49 ] >カレントのMakefileを使いたいこともあるので alias mk="make -f ~/Makefile" でOK
750 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 14:22:26 ] >>744 あまり良くない方法らしいがMAKEFILES環境変数 make makes many problems pc11.2ch.net/test/read.cgi/tech/1029599472/387
751 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:49:57 ] >>744 @ほにゃらら で下階層に移動するのはダメ? linuxのtarballでよくある方法
752 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:00:20 ] 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'
753 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:18:18 ] >>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 mailto:sage [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が無いようです。
755 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:12:28 ] >>735 カレントにfoo.cある時はMakefile無しでも make foo だけでデフォルトルールでコンパイルしてくれるぜ 俺はalias使わずに$CFLAGS,$CPPFLAGS,$LDFLAGS,$LDLIBS設定してMakefile用意せずmake派
756 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 02:37:50 ] cygwinのバージョンを古いのから、新しいのにアップデートさせたら、 コンパイルがかかる時間がかなり延びてしまった。 cygwinってアップデートしたら、コンパイル時間が伸びる場合ってあるの?
757 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 08:50:19 ] cygwinつーか、gccのバージョンの問題じゃない? gccは基本的にバージョンが上がるたびにコンパイルが遅くなってる。
758 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 14:04:08 ] 質問ですっ 現在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にも指定する所がなさそうですし。
759 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 14:11:10 ] >>758 どうやってDLLを作っているですか? dllwrapで作っているわではないの?
760 名前:758 mailto:sage [2008/06/11(水) 14:14:30 ] MinGW Developer Studio 2.05 を使用してDLLを作っています。
761 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:17:09 ] MinGW Developer Studioは使ったことないからアドバイスできないや。
762 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:23:31 ] C++側の話なので該当スレで聞いてください。
763 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:40:21 ] C++でdllを作ってるわけじゃないから C++スレ行ってもスレチ言われそうだな。
764 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 16:04:53 ] このスレでいいよ、MinGWの使い方なんだから。 自分には答えられないけど。
765 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:51:49 ] >>758 JNIはstdcallだから、そのままだと@がついてしまうようだね DEFファイルを使ってもいいと思うが --kill-atとか指定したら消えないか?
766 名前:758 mailto:sage [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
767 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:17:54 ] 758、ちゃんとまとめて、えらいな。質問者の鑑だ。
768 名前:756 mailto:sage [2008/06/20(金) 01:14:17 ] >>757 なるほど。 確かに、GCCのバージョンは3.3から3.4ぐらいに上げたわ。 cygwinのバージョンをダウンさせずに、コンパイル時間を早くさせる方法はあるのかな・・
769 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 01:37:44 ] CPUとHDDを速いものに替えることだろうなあ。
770 名前:756 mailto:sage [2008/06/20(金) 02:57:53 ] >>769 ハード的に改造しないと無理か・・・ orz
771 名前:デフォルトの名無しさん [2008/06/20(金) 08:57:26 ] 今日、gcc-4.3.0をcygwinからインストールしました。 ただ、間違えてC:/Tmpいかのgccを解凍したフォルダ内にインストールしてしまいました。 それで、一度アンインストールしてから再度別のフォルダにインストールしたいのですが、 アンインストールの仕方が調べてもいまいちわかりません。 どのようにすればよいでしょうか?
772 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 12:06:28 ] make uninstall やってみた?
773 名前:デフォルトの名無しさん [2008/06/21(土) 03:35:12 ] やってみましたが、 the uninstall target is not supported in this tree と出るのみです。
774 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 12:36:09 ] >>771 手動削除でおk。 # make deinstall だったりしない?
775 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 20:44:23 ] MinGW+Msysな環境をWindowsXP Pro SP2に構築したのですが、Cygwinに比べて非常に お手軽で素晴らしいんですが、この環境にwgetを入れることは出来ませんか? GNU Wgetの公式サイトからソース落としてきて ./configure make したらエラーが出てコンパイルできませんでした・・・・。
776 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:40:01 ] バイナリで良ければMinGW Utilitiesにある
777 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:51:24 ] >>776 バイナリでいいです sourceforge.net/project/showfiles.php?group_id=2435 ココの wget-1.9.1.tar.gz ですよね? downloads.sourceforge.net/mingw/wget-1.9.1.tar.gz?modtime=1119444412&big_mirror=1 ↑これ・・・・ しかしこれダウンロードしてもソースなんですけど? しかも./configure make したらエラー・・・・
778 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:13:03 ] 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 を答えてビルド。 本当は自動でダウンロード&展開してビルドするはずだけどなんかうまく動いてないっぽい。
779 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:17:38 ] しかしwget くらい MSYS Supplementary Tools ( sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879 ) あたりに入れて欲しいな… MSYS-1.0.11 あたりで入らないかなー?
780 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:21:00 ] >>777 > バイナリでいいです gnuwin32.sourceforge.net/packages/wget.htm の Complete package (Setup) が良いかと。
781 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:22:16 ] >>778 ありがとうございます!!!! え〜と、本来なら人に聞かずにこういうの自分で分からないといけないと思いますが 一次情報源はどこでしょうか?出来ればポインタ等示していただければ・・・・
782 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:23:43 ] >>780 ん?これは?これはMSYSとは無関係にコマンドプロンプト上で動いたりするのでしょうか?
783 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:24:29 ] >>781 www.mingw.org/MinGWiki/index.php/mingwPORT >>782 そーです。
784 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:30:26 ] ぶっちゃけ mingwPORT まともにメンテナンスされてない気がするけどなー
785 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:34:53 ] 皆様色々ご教示ありがとうございました。 おかげさまでwgetが使えるようになりました。今回は先に作業を始めたと言う事と せっかくMinGWとMSYSが入っているのでコマンドプロンプト版wgetは見送りました。 しかし別の環境で使う時は手軽にすぐ使えそうで、貴重な情報を頂きました。 本当にありがとうございました〜
786 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 23:05:54 ] 解決したようだから別にいいんだけど、「コマンドプロンプト版」ってどういう意味? MinGW でビルドした実行可能ファイルは MSYS が無くても動くよ。 単独で動くという意味では mingPORT の wget も GnuWin32 の wget も同じ。
787 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 23:22:59 ] >>786 ありゃ、そうだったんですか・・・ では、mingPORTのwgetとGnuWin32のwgetの違いとは何でしょうか?
788 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 23:36:10 ] >>787 詳しく知らないけど当たっているパッチとかビルド時のオプションとかが違う程度じゃないかな。 gnuwin32.sourceforge.net/summary.html によると MinGW でビルドされているようだし。
789 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:03:39 ] mingwportの件、sourceforgeのダウンロードURL変更にスクリプトが追随してない模様。 mirrors.sfファイルの最終行を DOWNLOADURI=${DOWNLOADURI}.dl.sourceforge.net/sourceforge/${PACKAGE} に書き換えたらmingwPORT.shで自動ダウンロードできた。
790 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 22:03:08 ] >>710 zshからvi起動してCのソースを書き書きしながらmakeすると vc++のcl.exe呼び出してコンパイルしてくれるようなことできますか。 シームレスっていうのは、そういうのを言うんだけど。
791 名前:sage [2008/07/08(火) 23:53:16 ] mingw5.1.4で--exec-charsetオプションが使えないのですが、 どうにか使えるようにはできないのでしょうか?
792 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 20:14:49 ] >>790 普通に出来るんじゃね? これまでの流れ読んでないけど、790のことに関しては。
793 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 20:57:16 ] 無理
794 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:42:37 ] >>793 何でよ? Makefile書いといてviで:!makeでいいべ。
795 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 00:16:02 ] 先生ー MSYS 1.0.10のmsys.bat叩いてもコマンドプロンプトが一瞬表示されてもう一回コマンドプロンプトが一瞬表示されてそのあとなんも起こらないんだけどこれどーすればいいの? コマンドプロンプト手動で出してmsys.bat呼んでやるとちゃんと起動されるんだけど… 環境はVista SP1 Ultimate
796 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 00:27:50 ] >>794 >>710 をよく読めよ
797 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 00:28:40 ] 1. 麻縄を輪状にして天井から吊す 2. 陰茎をその輪の中に通してユートピア
798 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 09:23:22 ] 妥協案 WindowsホストなVirtualBox上のLinux仮想マシンにWine/VC++/Cygwinをインストールして ホストの端末エミュレータから仮想マシンにログイン Linux/Wine/VC++/CygwinホストなVirtualBox上のWindows仮想マシンの端末エミュレータから ホストにログイン ただしWineでVC++とCygwin使えるかは知らない。
799 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 22:46:59 ] 簡単にVirtualBox使えばいいじゃん的な事言っている人いるけどさ、 VirtualBoxっつか仮想PCはかなり重いぞ。その点もちっとよく考えろよと。
800 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 22:56:31 ] >>799 意外に軽いぞ VirtualBox。 cygwinでGNOME動かすと使い物にならないが、VirtualBoxならかなりいい感じ。 ただ、cygwinとVirtualBoxは全然別物だよ。 Windowsの便利なツールとして使えるのがcygwin、 Windows上でただ単に別のOS動かして満足感を味わうのがVirtualBox。
801 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 13:25:27 ] えー、話の腰を折るようで恐縮ですが、 やねう企画代表者やねうらお(本名・磯崎元洋)が ・ソフトウェアの不正コピーを行っていた ・労働契約上の違反をしていた ・他は不正コピーしていないことを証明しようとしてエロゲーのパッケージを発見し、 写真に撮ってアップロードしようとした。 d.hatena.ne.jp/pmoky/19000106 やねう企画の裏側(競馬の詐欺ソフトの製作現場) d.hatena.ne.jp/pmoky/20060510 d.hatena.ne.jp/pmoky/20060511 d.hatena.ne.jp/pmoky/20060512 有限会社やねう企画(所在地・大阪府八尾市末広町2−1−2)が計画倒産 www.sia.go.jp/~osaka/zenso/19.09.pdf やねうらおプロフィール 性格:友達から「チンピラ」「ヤクザ」と呼ばれている。前世で殺人鬼だった宿業を背負っているという妄想(自覚)あり。 最終学歴:専門学校卒 主な職歴:有限会社センキ(凌辱系アダルトゲームの製作会社)を経て独立、有限会社やねう企画を設立、2006年に計画倒産 代表作:『夜這いマニア』『盗撮マニア』『お楽しみCDシリーズ』『競馬詐欺ソフト』『BM98』 やねうらお語録 >「ワシのほうが潔癖やと思うんやけどな。 >絶対に違法コピーのソフトしか使わんし。 >たとえば強盗に入ったときに、ちょっとかわいそうになって >十万円だけ残してったら、おかしいやろ? >自分の『強盗する』という意思に対して矛盾やろ? >だからワシは、一個も買ったソフトを使ったことがない!!」
802 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 13:27:31 ] 最近、やねうらおは弓月(>>801 )とか言う真性のキチガイに絡まれている 【自作自演】弓月城太郎氏に関するまとめ【神秘体験】 d.hatena.ne.jp/yaneurao/20080619
803 名前:デフォルトの名無しさん [2008/07/14(月) 12:42:37 ] リンクに関する質問なのですが、オブジェクトのリンク順番によって Undefinedエラーが発生してしまいます。 例えば、"ld a.o b.o"ならOKで、"ld b.o a.o"だとエラーが発生するといった具合です。 リンク順番を適切(?)に設定しなければならないのは CygwinかLinuxの仕様なのでしょうか?
804 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 12:47:02 ] Unix系では昔からそうだったと思うが。そうでないと、ライブラリ内の同名関数とバッティングしてしまうからね。
805 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 12:47:42 ] >>803 Linux だと適当に並べても面倒見てくれる。 cygwin や mingw だとリンク時に参照関係考慮して並べないとだめ、 ライブラリのリンクオプションの順番も重要。
806 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 13:52:31 ] >>804-805 CygwinというかUnix系自体に触ったことがなかったので とても迷ってしまいました。ありがとうございます。
807 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:42:45 ] 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下だけなのですが何かインストールが足りないのでしょうか?
809 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 16:38:22 ] >>808 ペニス
810 名前:デフォルトの名無しさん [2008/07/16(水) 20:39:32 ] ffmpeg-checkout-2008-07-16のFFMPEGを下記のオプションでconfigureするとエラーが出てしまいます。 何が原因なのでしょうか?アドバイスをおねがいします。 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 ffmpeg-user@mplayerhq.hu 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.
811 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:43:53 ] ffmpeg-checkout-2007-07-20では上手くいくのですが 新しいものでないとavfilterが使えないのです。 ライブラリ?はぜんぶmakeに性交しているので、最後のffmpegで行き詰まっています。
812 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 20:59:23 ] エラーメッセージそのままじゃないか prコマンドはmingw32のcoreutilsあたりにはいっているはず libamrは--enable-gplと矛盾するので使えない
813 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 21:11:30 ] アドバイスありがとうございます。 解決できそうです。 l ibamr is nonfreeとありますね。 とりあえず、--enable-libamr_nbを外しました。 それとpr.exeが見当たらないので探してきます。
814 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 11:51:48 ] >>808 の件、解決しました。 どうやらwindowsで解凍したときに、ファイル名が長いことが原因なのか ファイル名の末尾が化けたようです。 cygwinのコマンドで解凍したら正常にファイルがありました。 使用した解凍ソフトはLaplus1.53でした。多分バグだと思われます。
815 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 11:57:10 ] いいえ、仕様です。
816 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 19:02:18 ] 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)
818 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:32:05 ] Yes 諦めてMinGW入れなさい。
819 名前:デフォルトの名無しさん [2008/07/18(金) 00:07:30 ] 同ディレクトリにある5つのフォルダのmakeを自動的に実行するにはどうしたらいいのですか? dir1/makefile dir2/makefile dir3/makefile dir4/makefile dir5/makefile
820 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 00:15:31 ] >>819 cd dir1 && make
821 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 00:41:59 ] >>819 for foo in dir[1-5]; do pushd $foo; make; popd; done
822 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 11:16:33 ] >>820 >>821 ありがとぅ・
823 名前:デフォルトの名無しさん [2008/07/18(金) 11:41:47 ] Cygwin + Gcc 4.3.1でOpenMPプログラミングをしようとしたら、 #include文でomp.hがないと言われてしまいました。 gccのconfigureのオプションが足りなかったのでしょうか? 誰か教えてください。
824 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 11:54:33 ] omp.hがない
825 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 16:33:31 ] 宿題スレでみた /dev/pts と言うのをcygwinで使いたいのだけど、 何かセットアップが必要のようで、わかりません。 /devを見てみると、 stdinとかstdoutと言うのはあるけど、ptsと言うのは見当たりません。 どうすると、使えるようになりますか?
826 名前:質問です。 mailto:sage [2008/07/18(金) 16:56:11 ] >>824 Gcc 4.3にomp.hは入っていないのですか? 4.2にしか入っていないのですか?
827 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 18:22:26 ] >>826 omp.hはgccの付属物じゃないよ。OpenMPの付属物。
828 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 22:14:32 ] >>823 --enable-libgomp は指定した?
829 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 01:16:07 ] >>828 そんなオプションあったんすか!? configureの説明書きには--disable-libgompしかないから デフォルトかと思ってました・・・ あ〜、また7時間makeし直しか・・・orz
830 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 02:10:28 ] >>829 いや、だからおまいの環境、OpenMPのライブラリとヘッダがインストールされてないだろ、と。
831 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 12:30:07 ] >>830 gcc4.3.1の中にomp.h.inファイルがありましたので、 多分コンパイルの対象外にされているんだと思います。 何かのconfigureオプションが足りない? 続きはOpen MPスレで質問させていただきたいと思ってます。