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/
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とが渾然一体になってるような ハイブリッドカーネルみたいなんは無いもんか……