のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,848人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレCygwin + MinGW + GCC 相談室 Part 3

    gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 932 + - cannotfind + - cp932 + - FreeHDL + - heap + - known + - log4cxx + - WinMain@16 + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    701 : デフォルトの名無 - 2008/05/12(月) 22:01:14 (-1,-29,-11)
    >>700
    Cygnusにコンサル料払え。
    702 : デフォルトの名無 - 2008/05/12(月) 22:32:49 (+0,-29,-2)
    >>700
    Cygwin のバージョンを合わせるしかないんじゃね?
    703 : デフォルトの名無 - 2008/05/12(月) 22:34:07 (+0,-22,-15)
    MinGWで移植できないか考える
    704 : デフォルトの名無 - 2008/05/12(月) 23:33:16 (+0,-29,-7)
    >>700
    かたっぽのCygwin1.dll消すんじゃあかんの?
    705 : デフォルトの名無 - 2008/05/13(火) 00:09:35 (+7,-29,-45)
    >>700
    その他者の移植したソフトウェアと一緒に他者のCygwin環境のcygwin1.dllを貰ってきて
    そっちがロードされるようにして起動すればいいんでない?
    706 : 700 - 2008/05/13(火) 02:54:02 (+10,-29,-268)
    具体例を書いておいたほうが良かったか・・・。質問やり直し。

    http://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 : デフォルトの名無 - 2008/05/13(火) 06:10:22 (+51,+23,-7)
    いやだから、お互いのCygwinのリビジョンを合わせればいいって話じゃないの?
    708 : デフォルトの名無 - 2008/05/13(火) 10:57:44 (+2,-29,-2)
    >>700
    .local とか .manifest を用意すればOK。
    709 : デフォルトの名無 - 2008/05/13(火) 17:23:58 (+4,-29,-97)
    >>706
    そのソフトってcygwinのシェルから起動するのか?
    だとしたらパスの順番変えて付属のdllが先に見えるようにして起動すれば済む気がするけど…

    そうじゃないとしたら普通にcygwinをインストールした場合cygwin1.dllのある
    ディレクトリにパスが通ったりはしない(Windowsの環境変数の方のPATHね)からそんな
    問題は起こらない気がする…
    710 : デフォルトの名無 - 2008/05/14(水) 02:26:23 (+39,-29,-22)
    挑発しているのでもなんでもなく
    残念だがvirtualboxを使って複数のOSをシームレスに同居させられる今
    わざわざcygwinを使う意味がまったくわからない。
    古い Win環境でもcygwin使うより快適だよ

    試していないならやってみるべきだと思うな。
    711 : デフォルトの名無 - 2008/05/14(水) 04:12:26 (+3,-29,-64)
    なるほど、仮想マシンに Linux 入れてクロスコンパイル用
    のgccを用意してwin32用のバイナリを開発するということだな?
    確かに快適だろうがその環境を作れるやつがどの程度いるのか…
    # ここは一応 GCC のスレらしいよ?
    712 : デフォルトの名無 - 2008/05/14(水) 06:00:07 (+2,-29,-42)
    単にWindowsアプリケーションでPosixAPIを使いたいだけです
    713 : デフォルトの名無 - 2008/05/14(水) 07:27:36 (+2,-29,-2)
    単にシームレスにUnix系ツールを使いたいだけです。
    714 : デフォルトの名無 - 2008/05/14(水) 11:13:00 (+2,-29,-19)
    単にWin上でGCC系コンパイラーを使いたいだけです
    Cygは使ってませんし
    715 : デフォルトの名無 - 2008/05/14(水) 13:36:32 (-1,-29,+0)
    >>712
    つ Cygwin

    >>713
    つ MSYS

    >>714
    つ MinGW
    716 : デフォルトの名無 - 2008/05/14(水) 13:49:31 (+52,+29,-1)
    それ全部このスレの話題だよな。
    717 : デフォルトの名無 - 2008/05/14(水) 17:46:54 (-1,-29,-20)
    そもそもmsysってcygwinから派生したものだろ・・・
    718 : デフォルトの名無 - 2008/05/14(水) 17:59:09 (+2,-29,-1)
    敢えてWindows Services for UNIX
    719 : デフォルトの名無 - 2008/05/16(金) 00:43:41 (+0,-23,+1)
    >>718
    それなんてWine
    720 : デフォルトの名無 - 2008/05/16(金) 21:52:12 (-1,-29,-51)
    CygwinもColinuxもSFUもWineも微妙…
    もっとwinとUNIXとが渾然一体になってるような
    ハイブリッドカーネルみたいなんは無いもんか……
    721 : デフォルトの名無 - 2008/05/16(金) 22:44:53 (+57,+29,-5)
    もっと微妙になってしまいそうな気もするが…
    722 : デフォルトの名無 - 2008/05/18(日) 03:51:12 (-1,-29,-16)
    cygwin1.dllはアッパーコンパチにして欲しいよ。マジで。
    723 : デフォルトの名無 - 2008/05/25(日) 02:42:18 (+2,-29,-24)
    getrlimitのソースってどこにあるのでしょうか?
    glibcの中のgetrlimitは空実装でした。
    724 : デフォルトの名無 - 2008/05/25(日) 03:40:27 (-1,-29,-16)
    >>723
    どの環境のgetrlimit()?
    725 : デフォルトの名無 - 2008/05/30(金) 23:02:09 (-1,-29,-7)
    今日gcc4.3をビルドして初めて使ってみたんだけど、
    デフォルトで入ってるgcc3.4.4よりコンパイルが速いのね。
    726 : デフォルトの名無 - 2008/06/02(月) 22:00:21 (+44,-30,-289)
    % 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 : デフォルトの名無 - 2008/06/02(月) 22:07:27 (+7,-22,-4)
    >>726
    なんで「\!*」?「$@」じゃないの?
    つーか、そんなへんなエイリアスつくってないで、Makefile書きましょう。
    728 : デフォルトの名無 - 2008/06/02(月) 22:14:25 (+57,+29,-15)
    Makefile書けば済む話ではあるんですけど…。glutやらSDLやら
    目的別にエイリアス作っとけば、ちょこっとした作業が楽になるかな
    と思ったんです
    729 : デフォルトの名無 - 2008/06/02(月) 23:39:08 (+70,+29,-49)
    >>726
    せめてワンライナーなaliasなんかじゃなくシェルスクリプトにすれば
    記述の自由度があがってもっと便利なものも書けると思うんだが
    何かaliasで定義しないといけない理由とかがある?
    730 : デフォルトの名無 - 2008/06/02(月) 23:40:09 (+7,-30,-25)
    SDL知ってるなら、それに倣ってgl-configでも作っておけばいいんじゃない
    $ gcc `gl-config` hoge.c
    で済むようになるけど
    731 : デフォルトの名無 - 2008/06/03(火) 10:13:59 (+13,-29,-36)
    >>729
    理由は特にありません。
    ただ、シェルスクリプトの使い方が良く分かってないのと、ファイルを
    いちいち作りたくないとかです。

    >>730
    おお、すごくいい感じな気がします。こっちの方がいいですね
    `sdl-config --cflags --libs`みたいなことですよね。これは、
    どのような仕組みになっているのでしょうか?
    732 : デフォルトの名無 - 2008/06/03(火) 10:51:25 (+83,+18,-1)
    Makefile一個書くのがそんなに嫌なのかな?
    733 : デフォルトの名無 - 2008/06/03(火) 10:54:14 (+39,-29,-11)
    >>731
    sdl-configの中身を読んでみましょう。
    シェルスクリプトの書き方を習得しとくと、イロイロ便利だよ。
    734 : デフォルトの名無 - 2008/06/03(火) 11:28:18 (+79,+29,-26)
    >>732
    ちょこっとしたテスト用ののソースのためにわざわざMakefile書くのが嫌かもです。
    リンクするライブラリが多かったりすると…
    Makefile書くよりもコマンドの方が手軽かな、と私が勝手に思ってるだけです。

    >>733
    シェルは覚えたいですね。
    735 : デフォルトの名無 - 2008/06/03(火) 11:30:02 (+36,-29,-11)
    >>734
    もしかして、ソースファイルごとにMakefileが必要だと思っていない?
    適当なMakefileを用意しておけば、例えばmake fooとするだけでfoo.cかfoo.cppをコンパイルできるのだけど。
    736 : デフォルトの名無 - 2008/06/03(火) 12:02:24 (+9,-30,-105)
    >>735
    make fooとした場合、
    Makefile内の
    foo:
    コマンド
    の部分が実行される。で合ってますか?
    この場合、使えるソースファイルの名前はfooだけですよね?
    例えば、fooってファイルの他にfoo1,foo2などのファイルを作った場合も
    make foo1 ,make foo2という風にできるのでしょうか?

    それとも、上のように様々なソースファイルを引数で指定するようならば、

    make はマクロの定義をシェル引数からでもできる。
    例: % make CC=gcc
    ということなので、これを応用すればいいのでしょうか?
    737 : デフォルトの名無 - 2008/06/03(火) 12:06:52 (+5,-29,-7)
    >>736
    %: %.c
        gcc -o $@ $<

    ってMakefileに書いてみ
    738 : デフォルトの名無 - 2008/06/03(火) 12:36:59 (+37,-29,-36)
    >>737
    おお、ありがとうございます。こんな使い方できるんですね。最初からMakefileに
    ついて調べとけば良かったorz

    これで解決です。

    ところで、autotoolsってありますよね。あれの使いどころが良く分かりません。
    大規模なソフトウェア->autotools使う。
    趣味範囲のソフトウェア->自分でMakefileを作って流用する
    って感じなのでしょうか?
    739 : 735 - 2008/06/03(火) 12:59:50 (+95,+29,-29)
    >>738
    やっぱりそうだったのかw 道理で話が噛み合わないと思った。
    740 : デフォルトの名無 - 2008/06/03(火) 13:01:53 (+68,+27,-19)
    >>739
    知識少なくてすみませんw
    プログラムしたくてもMakefileを調べていたら全然進まないので、
    741 : デフォルトの名無 - 2008/06/03(火) 13:02:35 (+53,+25,-6)
    やっつけでMakefile書いてきたツケが…
    742 : デフォルトの名無 - 2008/06/03(火) 13:07:56 (-1,-29,-7)
    事実上、
    autotools->クロスプラットフォーム
    Makefile->環境依存
    だとおもえばいいよ。
    743 : デフォルトの名無 - 2008/06/03(火) 13:13:03 (+28,+0,+1)
    なるほど。じゃあ、Makefileについてちゃんと調べようと思います。
    744 : デフォルトの名無 - 2008/06/03(火) 13:14:28 (-13,-29,-16)
    foo.Cが任意のディレクトリにあるとき、
    Makefileをソースファイルと同じディレクトリに置かないと、make fooとはできないよね。
    できるのならぜひ方法を知りたい。
    745 : デフォルトの名無 - 2008/06/03(火) 13:19:17 (+3,-30,-128)
    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 : デフォルトの名無 - 2008/06/03(火) 13:24:04 (+34,-30,-34)
    >>744
    -fで指定するのが嫌で、alias make="make -f ~/Makefile"とかするのが嫌なら、
    カレントにMakefileのシンボリックリンクでも置いておくとか。
    747 : デフォルトの名無 - 2008/06/03(火) 13:24:26 (-6,-29,+0)
    >>744
    vpathとか
    748 : デフォルトの名無 - 2008/06/03(火) 13:34:01 (+67,+29,-61)
    >>746
    aliasの存在を忘れていた。すぐ上でalias見たばかりなのに……。
    ふだんはわざわざカレントにシンボリックリンク(ジャンクション)を作ってました。
    とはいえ、カレントのMakefileを使いたいこともあるのでvpath使ってみようと思います。
    こんな便利なものがあったとは。
    749 : デフォルトの名無 - 2008/06/03(火) 13:43:49 (-2,-30,-23)
    >カレントのMakefileを使いたいこともあるので
    alias mk="make -f ~/Makefile"
    でOK
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 932 + - cannotfind + - cp932 + - FreeHDL + - heap + - known + - log4cxx + - WinMain@16 + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について