Cygwin + MinGW + GCC ..
[2ch|▼Menu]
641:デフォルトの名無しさん
08/04/17 22:41:46
>>640
%* や、バッチファイルのその他の機能の説明を読んだ方がよさそう。
Windowsの「スタート」ボタン→「ヘルプとサポート」
→検索窓に「バッチ」と入力して検索→「バッチ パラメータを使用する」
→検索窓に「シェル」と入力して検索 →「コマンド シェルの概要」


642:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/04/18 04:21:48
>>642
alias 打って実際の登録状況を見るとか。
set -x して実際に起動されたプロセスの引数を確認するとか。

644:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/04/18 08:40:49
.bashrcに echo hello とか入れてみれば読まれてるかどうか分かるんじゃ?

646:デフォルトの名無しさん
08/04/18 08:55:12
質問には「.bashrcが読み込まれているかどうか分かりません」なんて書かれてないだろう

>>644
URLリンク(www.google.com)

647:デフォルトの名無しさん
08/04/20 09:05:36
【質問】 Xfce4を利用できない
【希望】 Xfce4デスクトップ環境を利用したい
【やったこと】
URLリンク(www.compuspec.net)
上記のサイトを参考にしました。

setup.exeより、リポジトリ「fURLリンク(sunsite.dk)」を追加し、
Xfce4関連のパッケージ全てをインストール。.bashrcに
PATH=/opt/xfce4/bin:$PATH
export PATH
を追記し、bash上からパスが通っていることを確認。
$ startxfce4
を実行すると、xscreenserverがないとメッセージが出たので、
setup.exeよりxscreenserverを選択しインストール。

再度startxfce4を実行すると、X画面が表示されるものの下記のようなログが出て
Xfce4が起動できていない。

ちなみに利用OSはWindowsXPでユーザ名は「root」としています。

648:デフォルトの名無しさん
08/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 URLリンク(x.cygwin.com) 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のカーソル(×印)が表示されて停止
# URLリンク(img224.echo.cx)

649:デフォルトの名無しさん
08/04/20 09:19:24
理想
URLリンク(blawat2015.no-ip.com)

650:デフォルトの名無しさん
08/04/20 22:10:32
URLリンク(www.geekpage.jp)

ここを見て最初からやっていったのですが、コンパイルは出来たものの
>CygwinだけではなくWindowsコマンドプロンプトで実行したい場合
のところにある「-mno-cygwin」を使おうとすると
gcc: installation problem, cannot exec `cc1': No such file or directory
と出てきてしまいます
どうしたらいいでしょうか?

651:デフォルトの名無しさん
08/04/20 23:54:24
>650
必要なパッケージが足りてない。
-mno-cygwin が使いたい場合、gcc-core だけじゃなくて gcc-mingw-core も必要。

652:デフォルトの名無しさん
08/04/21 13:53:13
都合でMinGWを使いたいんだけど、Cygwin導入済みのWindowsに入れたら競合が起こるかな
CygwinパッケージにもMinGWがあった気がするけど、両方とも干渉せずスタンドアロンで使いたいっす

653:デフォルトの名無しさん
08/04/21 16:26:13
>>652
cygwinでmingwのコマンド類のある場所にパス通したりしなければ問題ない。
うちは普通に cygwin と mingw + MSYS が両方入ってる。

654:デフォルトの名無しさん
08/04/21 22:37:48
>>651
解決しました
ありがとうございました

655:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/04/27 09:02:53
laファイル捏造が嫌なら libtool 自体を書き換えるしかないと思うが。

657:デフォルトの名無しさん
08/05/04 16:29:31
i686-elfがターゲットなbinutilsを作ったのですがgccにこれを使うよう指示する方法が分かりません

URLリンク(iwatam-server.dyndns.org)とかを見ると
オレオレbinutilsを使いたい場合gccも作らなくてはならない感じなのですがどうにかする方法はないでしょうか?

658:デフォルトの名無しさん
08/05/05 17:40:58
>>657
gccにはそういうオプションなどなかったと思うけど、
gcc -S でアセンブリソースを出して、
オレオレas でオブジェクトを作って、
オレオレld でリンクすればいいだけ。


659:デフォルトの名無しさん
08/05/05 18:40:18
specsのinvoke_asとlinker書き換えて -specs= で読ませりゃいいんでない?

660:デフォルトの名無しさん
08/05/06 12:21:35
高速に質の良さそうな乱数を取得する方法を探しております。
「Mersenne Twister」というのに行き当たったのですが、もっと高速なものを探していたところ、
「/dev/rand」というものがあるというのを知りました。
下記に関し日本語サイト探しているんですが、なかなか詳しいところが見つけられません。
 1./dev/randとはハードか何かで乱数作るんでしょうか?
 2./dev/randはWindowsで使うことは出来ますか?
  また使い方は?

661:デフォルトの名無しさん
08/05/06 12:26:41
乱数スレで質問すれば誰か詳しい人がいるかもしれないよ

662:デフォルトの名無しさん
08/05/06 12:36:14
>>661
そうですか。
ただマルチになると申し訳ないので、2〜3日寝かしてレス付かないようなら移動しますね。

663:デフォルトの名無しさん
08/05/06 13:36:56
>>657
-B prefix と -b target ジャマイカ?

664:デフォルトの名無しさん
08/05/06 15:46:41
>>660
もうすっかり忘れたけどrand()は線型合同法かなんかだっけ?
メルセンヌツイスタを見つけたならひと口に乱数と言っても
目的によって適不適があるというような注意書きを
メルセンヌツイスタの作者が書いてるのに行き当たったり
しているはずだが。

665:デフォルトの名無しさん
08/05/06 15:55:16
>>662
取り下げによる移動はマルチではない。
移動の方法としてはいくつか在るがたとえば
ここに、「〜〜(移動先URL)へ移動しました」などと書いたうえで
移動先に「〜〜(ここのURLとレス番)から誘導を頂きました」
とでも書いておけばその時点でマルチではなくなる。

666:デフォルトの名無しさん
08/05/06 16:06:09
乱数スレの住人ってバカばっかりだからなぁ

667:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/06 16:44:44
> /dev/rand に相当するデバイスドライバを書けば OK

ほら。もう、バカばっかり・・・

669:デフォルトの名無しさん
08/05/06 21:28:53
>>660
/dev/random
/dev/urandom
のこと? だったら、参考資料としてはこの辺とか。
URLリンク(www.linux.or.jp)
とりあえずCygwinなら使えるが、Linux等と同じ動作をしてるわけでは
ないと思われるため、品質や速度については不明。MinGWは知らん。

/dev/rand はぐぐってみると結構ヒットするけど、実在するの?

670:デフォルトの名無しさん
08/05/06 23:01:34
作ればできるよ。ああできるよ。何だってできるよ、作れば。

671:デフォルトの名無しさん
08/05/06 23:51:01
>>669
作ればあります。

672:デフォルトの名無しさん
08/05/07 03:08:41
作らんでもエイリアス張るだけちゃうん

673:デフォルトの名無しさん
08/05/07 12:09:13
WindowsにEGD移植されてないんだっけ?

674:デフォルトの名無しさん
08/05/07 16:19:35
すいません、MinGWにUTF-8を認識させるようにしたいのですが、そこらへん設定するにはどうすればよいでしょうか??
どなたか教えて頂けると幸いです。


675:デフォルトの名無しさん
08/05/07 16:23:27
>>674
MinGWに認識させるとは?
gccのオプション指定で入力エンコードと出力エンコードを指定するって話なら判るんだけど。

676:674
08/05/07 16:47:30
レスありがとうございます。

>> gccのオプション指定で入力エンコードと出力エンコードを指定するって話なら判るんだけど。
分かりにくくてすいません、そんな感じのことを言いたかったのでした。
コンパイル時のオプションで設定できたんですか。
調べたら
--input-charset, --exec-charset
など、出てきました。

ありがとうございましたm(_ _)m

677:デフォルトの名無しさん
08/05/07 19:08:07
不完全な質問にヒント程度のエスパー回答、そして解決報告
素晴らしい流れに心が洗われるようだ

678:デフォルトの名無しさん
08/05/07 22:24:33
URLリンク(sourceforge.net)
> Testing: gcc-4.3.0-20080502-mingw32-alpha

いきなり 4.3.0 ですかい

679:デフォルトの名無しさん
08/05/08 00:24:46
x64対応はまだかね?

680:デフォルトの名無しさん
08/05/08 21:00:27
おまいらソースを嫁
URLリンク(cygwin.com)
URLリンク(msdn.microsoft.com)(VS.85).aspx
各種外乱使った暗号論的擬似乱数っぽい

暗号論的に優秀なのとMCやなんかで優秀なのは違ったと思うんで
用途によるはずだがそのあたりは詳しく知らない

681:デフォルトの名無しさん
08/05/09 13:17:06
MinGWでのコンパイルってこの方法であってますよね?
コマンドプロンプトで、chdir ソースファイルが保存してあるディレクトリまでの絶対パスまたは相対パス
そしたら
ソースファイルが保存してあるディレクトリまでのパス>gcc ソースファイル.C -o ソースファイル.exe
これでコンパイルしてもエラーでるからコンパイルの方法が悪いのかなって思ったんだけどさ
ソースファイルは本通りに入力したはずだからあってるはず。
もうプログラミング挫折しそうです。

682:デフォルトの名無しさん
08/05/09 13:31:28
エラーを貼り付けないと回答のしようがない。
コマンドライン慣れてないならVisual C++ 2008 Express Editionや
Eclipse CDT使うのも手。

683:デフォルトの名無しさん
08/05/09 13:34:32
すいません
>>681の通りに入力して
gcc: installation problem, cannot exec `cc1plus': No such file or directory
と表示されます。


684:デフォルトの名無しさん
08/05/09 14:14:33
目的がプログラミングの学習で、
英語が全く分からない&英語を勉強する気はない
なら VC++ 使った方がいい。

685:デフォルトの名無しさん
08/05/09 14:14:45
そりゃめげるわな
URLリンク(zieaon.co.uk)
PATH通せ

686:デフォルトの名無しさん
08/05/09 15:22:57
ありがとうございます。
VC++ってC言語でもつかえるんですか?


687:デフォルトの名無しさん
08/05/09 15:29:17
使えるよ
でもスレ違い

688:デフォルトの名無しさん
08/05/09 15:35:34
おぉ そうなんですか!!
スレ違いになりますね;;
みなさんありがとうございました。
VC++で頑張ってみます

689:デフォルトの名無しさん
08/05/09 15:57:33
華麗にスルーされた俺カワイソス

690:デフォルトの名無しさん
08/05/09 16:23:16
大丈夫か?初心者にVCなんか勧めて。
どうせ今度は sprintf_s、strcpys、strcat_s・・・ でつまづくだろ。
オレなら Borland C++ Compiler を薦める。

691:デフォルトの名無しさん
08/05/09 18:13:24
gcc(ry

692:デフォルトの名無しさん
08/05/09 18:53:08
その前に日本語

693:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/11 02:49:43
>>694
main()に入る前にmalloc()が呼ばれることもあるので、そういうハリボ
テ実装ではダメ。



696:694
08/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
08/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:デフォルトの名無しさん
08/05/11 10:15:40
Cygwinだよね?

 ソ ー ス 嫁

そうすれば malloc などの置き換えのために何をすればいいかわかってくる。
ただ、今回は malloc の書き直しが目標なのではないだろう?
ヘッダ・ソースから内部構造体を調べて、ヒープヲークする程度で充分なんでは?

> ここで、save_mallocと出るよりも前に
> mallocと表示され、そこで前回と同じ症状となりました。

オリジナルの malloc を"セーブ"することには意味がないよ。
むしろ malloc_org が初期化されていない場面があるってことだから
DLLから都度ポインタ得ても同じこと。
そして、DLL内部で完結している malloc を、この方法で
置き換えることは困難(つーか不可能)だ。
(たとえば strdup の内部 malloc 呼び出しをこの方法で乗っ取れるか
どうか実験してみるといい)

699:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/12 20:31:43
既にCygwin環境があるWindowsで、「他者のCygwin環境でWindowsに移植されたソフトウェア」を実行しようとすると
cygwin1.dllのバージョンの差異でエラー(fatal error - system shared memory version mismatch detected)が発生します。
既にCygwin環境があるWindowsで、それぞれが独立した形(スタンドアロン)として実行する最善の方法をご教授ください。

701:デフォルトの名無しさん
08/05/12 22:01:14
>>700
Cygnusにコンサル料払え。

702:デフォルトの名無しさん
08/05/12 22:32:49
>>700
Cygwin のバージョンを合わせるしかないんじゃね?

703:デフォルトの名無しさん
08/05/12 22:34:07
MinGWで移植できないか考える

704:デフォルトの名無しさん
08/05/12 23:33:16
>>700
かたっぽのCygwin1.dll消すんじゃあかんの?

705:デフォルトの名無しさん
08/05/13 00:09:35
>>700
その他者の移植したソフトウェアと一緒に他者のCygwin環境のcygwin1.dllを貰ってきて
そっちがロードされるようにして起動すればいいんでない?

706:700
08/05/13 02:54:02
具体例を書いておいたほうが良かったか・・・。質問やり直し。

URLリンク(blogs.windowsnetworking.com)
こういうスタンドアロンで使う事を目的としたcygwin環境を含むソフトウェアを
CygwinがインストールされてるWindowsにインストールすると、ソフトウェア同梱のcygwin1.dllよりも先に
パスが通ってるディレクトリにあるcygwin1.dllを読みに行こうとします。

バージョンの差異で起動できないのは表示されるエラーメッセージで明白なので、
早い話パスが通ってるディレクトリにあるcygwin1.dllを、同梱されてるcygwin1.dllで上書きすればいいんですが、
ソフトを使うたびにファイルを入れ替えやらをしていたら、バイナリ配布がやり易いWindowsの特権がryという話です。
# そもそも、入れ替えするくらいならソースを持ってきてコンパイルした方が早い。

そこで、>>705にある「そっちがロードされるようにして起動」の部分が知りたいと思いました。
オープンソースの恩恵を受けてるユーザだと、結構ぶち当たる問題かと思い、こちらで質問しました。
物理的にDLLを入れ替える方法しかない場合は、大人しくソースからコンパイルしマス。

707:デフォルトの名無しさん
08/05/13 06:10:22
いやだから、お互いのCygwinのリビジョンを合わせればいいって話じゃないの?

708:デフォルトの名無しさん
08/05/13 10:57:44
>>700
.local とか .manifest を用意すればOK。


709:デフォルトの名無しさん
08/05/13 17:23:58
>>706
そのソフトってcygwinのシェルから起動するのか?
だとしたらパスの順番変えて付属のdllが先に見えるようにして起動すれば済む気がするけど…

そうじゃないとしたら普通にcygwinをインストールした場合cygwin1.dllのある
ディレクトリにパスが通ったりはしない(Windowsの環境変数の方のPATHね)からそんな
問題は起こらない気がする…

710:デフォルトの名無しさん
08/05/14 02:26:23
挑発しているのでもなんでもなく
残念だがvirtualboxを使って複数のOSをシームレスに同居させられる今
わざわざcygwinを使う意味がまったくわからない。
古い Win環境でもcygwin使うより快適だよ

試していないならやってみるべきだと思うな。

711:デフォルトの名無しさん
08/05/14 04:12:26
なるほど、仮想マシンに Linux 入れてクロスコンパイル用
のgccを用意してwin32用のバイナリを開発するということだな?
確かに快適だろうがその環境を作れるやつがどの程度いるのか…
# ここは一応 GCC のスレらしいよ?

712:デフォルトの名無しさん
08/05/14 06:00:07
単にWindowsアプリケーションでPosixAPIを使いたいだけです

713:デフォルトの名無しさん
08/05/14 07:27:36
単にシームレスにUnix系ツールを使いたいだけです。

714:デフォルトの名無しさん
08/05/14 11:13:00
単にWin上でGCC系コンパイラーを使いたいだけです
Cygは使ってませんし

715:デフォルトの名無しさん
08/05/14 13:36:32
>>712
つ Cygwin

>>713
つ MSYS

>>714
つ MinGW

716:デフォルトの名無しさん
08/05/14 13:49:31
それ全部このスレの話題だよな。

717:デフォルトの名無しさん
08/05/14 17:46:54
そもそもmsysってcygwinから派生したものだろ・・・

718:デフォルトの名無しさん
08/05/14 17:59:09
敢えてWindows Services for UNIX

719:デフォルトの名無しさん
08/05/16 00:43:41
>>718
それなんてWine

720:デフォルトの名無しさん
08/05/16 21:52:12
CygwinもColinuxもSFUもWineも微妙…
もっとwinとUNIXとが渾然一体になってるような
ハイブリッドカーネルみたいなんは無いもんか……


721:デフォルトの名無しさん
08/05/16 22:44:53
もっと微妙になってしまいそうな気もするが…

722:デフォルトの名無しさん
08/05/18 03:51:12
cygwin1.dllはアッパーコンパチにして欲しいよ。マジで。

723:デフォルトの名無しさん
08/05/25 02:42:18
getrlimitのソースってどこにあるのでしょうか?
glibcの中のgetrlimitは空実装でした。

724:デフォルトの名無しさん
08/05/25 03:40:27
>>723
どの環境のgetrlimit()?


725:デフォルトの名無しさん
08/05/30 23:02:09
今日gcc4.3をビルドして初めて使ってみたんだけど、
デフォルトで入ってるgcc3.4.4よりコンパイルが速いのね。

726:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/02 22:07:27
>>726
なんで「\!*」?「$@」じゃないの?
つーか、そんなへんなエイリアスつくってないで、Makefile書きましょう。


728:デフォルトの名無しさん
08/06/02 22:14:25
Makefile書けば済む話ではあるんですけど…。glutやらSDLやら
目的別にエイリアス作っとけば、ちょこっとした作業が楽になるかな
と思ったんです

729:デフォルトの名無しさん
08/06/02 23:39:08
>>726
せめてワンライナーなaliasなんかじゃなくシェルスクリプトにすれば
記述の自由度があがってもっと便利なものも書けると思うんだが
何かaliasで定義しないといけない理由とかがある?

730:デフォルトの名無しさん
08/06/02 23:40:09
SDL知ってるなら、それに倣ってgl-configでも作っておけばいいんじゃない
$ gcc `gl-config` hoge.c
で済むようになるけど

731:デフォルトの名無しさん
08/06/03 10:13:59
>>729
理由は特にありません。
ただ、シェルスクリプトの使い方が良く分かってないのと、ファイルを
いちいち作りたくないとかです。

>>730
おお、すごくいい感じな気がします。こっちの方がいいですね
`sdl-config --cflags --libs`みたいなことですよね。これは、
どのような仕組みになっているのでしょうか?

732:デフォルトの名無しさん
08/06/03 10:51:25
Makefile一個書くのがそんなに嫌なのかな?

733:デフォルトの名無しさん
08/06/03 10:54:14
>>731
sdl-configの中身を読んでみましょう。
シェルスクリプトの書き方を習得しとくと、イロイロ便利だよ。


734:デフォルトの名無しさん
08/06/03 11:28:18
>>732
ちょこっとしたテスト用ののソースのためにわざわざMakefile書くのが嫌かもです。
リンクするライブラリが多かったりすると…
Makefile書くよりもコマンドの方が手軽かな、と私が勝手に思ってるだけです。

>>733
シェルは覚えたいですね。

735:デフォルトの名無しさん
08/06/03 11:30:02
>>734
もしかして、ソースファイルごとにMakefileが必要だと思っていない?
適当なMakefileを用意しておけば、例えばmake fooとするだけでfoo.cかfoo.cppをコンパイルできるのだけど。

736:デフォルトの名無しさん
08/06/03 12:02:24
>>735
make fooとした場合、
Makefile内の
foo:
コマンド
の部分が実行される。で合ってますか?
この場合、使えるソースファイルの名前はfooだけですよね?
例えば、fooってファイルの他にfoo1,foo2などのファイルを作った場合も
make foo1 ,make foo2という風にできるのでしょうか?

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

make はマクロの定義をシェル引数からでもできる。
例: % make CC=gcc
ということなので、これを応用すればいいのでしょうか?

737:デフォルトの名無しさん
08/06/03 12:06:52
>>736
%: %.c
    gcc -o $@ $<

ってMakefileに書いてみ

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

これで解決です。

ところで、autotoolsってありますよね。あれの使いどころが良く分かりません。
大規模なソフトウェア->autotools使う。
趣味範囲のソフトウェア->自分でMakefileを作って流用する
って感じなのでしょうか?

739:735
08/06/03 12:59:50
>>738
やっぱりそうだったのかw 道理で話が噛み合わないと思った。

740:デフォルトの名無しさん
08/06/03 13:01:53
>>739
知識少なくてすみませんw
プログラムしたくてもMakefileを調べていたら全然進まないので、

741:デフォルトの名無しさん
08/06/03 13:02:35
やっつけでMakefile書いてきたツケが…

742:デフォルトの名無しさん
08/06/03 13:07:56
事実上、
autotools->クロスプラットフォーム
Makefile->環境依存
だとおもえばいいよ。

743:デフォルトの名無しさん
08/06/03 13:13:03
なるほど。じゃあ、Makefileについてちゃんと調べようと思います。

744:デフォルトの名無しさん
08/06/03 13:14:28
foo.Cが任意のディレクトリにあるとき、
Makefileをソースファイルと同じディレクトリに置かないと、make fooとはできないよね。
できるのならぜひ方法を知りたい。

745:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/03 13:24:04
>>744
-fで指定するのが嫌で、alias make="make -f ~/Makefile"とかするのが嫌なら、
カレントにMakefileのシンボリックリンクでも置いておくとか。


747:デフォルトの名無しさん
08/06/03 13:24:26
>>744
vpathとか

748:デフォルトの名無しさん
08/06/03 13:34:01
>>746
aliasの存在を忘れていた。すぐ上でalias見たばかりなのに……。
ふだんはわざわざカレントにシンボリックリンク(ジャンクション)を作ってました。
とはいえ、カレントのMakefileを使いたいこともあるのでvpath使ってみようと思います。
こんな便利なものがあったとは。

749:デフォルトの名無しさん
08/06/03 13:43:49
>カレントのMakefileを使いたいこともあるので
alias mk="make -f ~/Makefile"
でOK

750:デフォルトの名無しさん
08/06/03 14:22:26
>>744
あまり良くない方法らしいがMAKEFILES環境変数

make makes many problems
スレリンク(tech板:387番)

751:デフォルトの名無しさん
08/06/04 01:49:57
>>744
@ほにゃらら
で下階層に移動するのはダメ?
linuxのtarballでよくある方法

752:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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
08/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:デフォルトの名無しさん
08/06/05 22:12:28
>>735
カレントにfoo.cある時はMakefile無しでも
make foo
だけでデフォルトルールでコンパイルしてくれるぜ
俺はalias使わずに$CFLAGS,$CPPFLAGS,$LDFLAGS,$LDLIBS設定してMakefile用意せずmake派

756:デフォルトの名無しさん
08/06/11 02:37:50
cygwinのバージョンを古いのから、新しいのにアップデートさせたら、
コンパイルがかかる時間がかなり延びてしまった。
cygwinってアップデートしたら、コンパイル時間が伸びる場合ってあるの?

757:デフォルトの名無しさん
08/06/11 08:50:19
cygwinつーか、gccのバージョンの問題じゃない?
gccは基本的にバージョンが上がるたびにコンパイルが遅くなってる。


758:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 14:11:10
>>758
どうやってDLLを作っているですか? dllwrapで作っているわではないの?



760:758
08/06/11 14:14:30
MinGW Developer Studio 2.05
を使用してDLLを作っています。

761:デフォルトの名無しさん
08/06/11 15:17:09
MinGW Developer Studioは使ったことないからアドバイスできないや。


762:デフォルトの名無しさん
08/06/11 15:23:31
C++側の話なので該当スレで聞いてください。

763:デフォルトの名無しさん
08/06/11 15:40:21
C++でdllを作ってるわけじゃないから
C++スレ行ってもスレチ言われそうだな。

764:デフォルトの名無しさん
08/06/11 16:04:53
このスレでいいよ、MinGWの使い方なんだから。
自分には答えられないけど。


765:デフォルトの名無しさん
08/06/11 17:51:49
>>758
JNIはstdcallだから、そのままだと@がついてしまうようだね
DEFファイルを使ってもいいと思うが
--kill-atとか指定したら消えないか?


766:758
08/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:デフォルトの名無しさん
08/06/13 01:17:54
758、ちゃんとまとめて、えらいな。質問者の鑑だ。

768:756
08/06/20 01:14:17
>>757
なるほど。
確かに、GCCのバージョンは3.3から3.4ぐらいに上げたわ。
cygwinのバージョンをダウンさせずに、コンパイル時間を早くさせる方法はあるのかな・・

769:デフォルトの名無しさん
08/06/20 01:37:44
CPUとHDDを速いものに替えることだろうなあ。

770:756
08/06/20 02:57:53
>>769
ハード的に改造しないと無理か・・・ orz

771:デフォルトの名無しさん
08/06/20 08:57:26
今日、gcc-4.3.0をcygwinからインストールしました。
ただ、間違えてC:/Tmpいかのgccを解凍したフォルダ内にインストールしてしまいました。
それで、一度アンインストールしてから再度別のフォルダにインストールしたいのですが、
アンインストールの仕方が調べてもいまいちわかりません。
どのようにすればよいでしょうか?

772:デフォルトの名無しさん
08/06/20 12:06:28
make uninstall やってみた?

773:デフォルトの名無しさん
08/06/21 03:35:12
やってみましたが、
the uninstall target is not supported in this tree

と出るのみです。

774:デフォルトの名無しさん
08/06/21 12:36:09
>>771
手動削除でおk。

# make deinstall だったりしない?

775:デフォルトの名無しさん
08/06/24 20:44:23
MinGW+Msysな環境をWindowsXP Pro SP2に構築したのですが、Cygwinに比べて非常に
お手軽で素晴らしいんですが、この環境にwgetを入れることは出来ませんか?
GNU Wgetの公式サイトからソース落としてきて
./configure
make したらエラーが出てコンパイルできませんでした・・・・。

776:デフォルトの名無しさん
08/06/24 21:40:01
バイナリで良ければMinGW Utilitiesにある

777:デフォルトの名無しさん
08/06/24 21:51:24
>>776
バイナリでいいです

URLリンク(sourceforge.net)
ココの
wget-1.9.1.tar.gz
ですよね?
URLリンク(downloads.sourceforge.net)
↑これ・・・・
しかしこれダウンロードしてもソースなんですけど?
しかも./configure make したらエラー・・・・

778:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/24 22:17:38
しかしwget くらい MSYS Supplementary Tools
( URLリンク(sourceforge.net) )
あたりに入れて欲しいな…
MSYS-1.0.11 あたりで入らないかなー?

780:デフォルトの名無しさん
08/06/24 22:21:00
>>777
> バイナリでいいです 

URLリンク(gnuwin32.sourceforge.net)
の Complete package (Setup) が良いかと。

781:デフォルトの名無しさん
08/06/24 22:22:16
>>778
ありがとうございます!!!!
え〜と、本来なら人に聞かずにこういうの自分で分からないといけないと思いますが
一次情報源はどこでしょうか?出来ればポインタ等示していただければ・・・・

782:デフォルトの名無しさん
08/06/24 22:23:43
>>780
ん?これは?これはMSYSとは無関係にコマンドプロンプト上で動いたりするのでしょうか?

783:デフォルトの名無しさん
08/06/24 22:24:29
>>781
URLリンク(www.mingw.org)

>>782
そーです。

784:デフォルトの名無しさん
08/06/24 22:30:26
ぶっちゃけ mingwPORT まともにメンテナンスされてない気がするけどなー

785:デフォルトの名無しさん
08/06/24 22:34:53
皆様色々ご教示ありがとうございました。
おかげさまでwgetが使えるようになりました。今回は先に作業を始めたと言う事と
せっかくMinGWとMSYSが入っているのでコマンドプロンプト版wgetは見送りました。
しかし別の環境で使う時は手軽にすぐ使えそうで、貴重な情報を頂きました。
本当にありがとうございました〜

786:デフォルトの名無しさん
08/06/24 23:05:54
解決したようだから別にいいんだけど、「コマンドプロンプト版」ってどういう意味?
MinGW でビルドした実行可能ファイルは MSYS が無くても動くよ。
単独で動くという意味では mingPORT の wget も GnuWin32 の wget も同じ。

787:デフォルトの名無しさん
08/06/24 23:22:59
>>786
ありゃ、そうだったんですか・・・
では、mingPORTのwgetとGnuWin32のwgetの違いとは何でしょうか?

788:デフォルトの名無しさん
08/06/24 23:36:10
>>787
詳しく知らないけど当たっているパッチとかビルド時のオプションとかが違う程度じゃないかな。
URLリンク(gnuwin32.sourceforge.net) によると MinGW でビルドされているようだし。

789:デフォルトの名無しさん
08/06/25 12:03:39
mingwportの件、sourceforgeのダウンロードURL変更にスクリプトが追随してない模様。
mirrors.sfファイルの最終行を
DOWNLOADURI=${DOWNLOADURI}.dl.sourceforge.net/sourceforge/${PACKAGE}
に書き換えたらmingwPORT.shで自動ダウンロードできた。

790:デフォルトの名無しさん
08/07/08 22:03:08
>>710
zshからvi起動してCのソースを書き書きしながらmakeすると
vc++のcl.exe呼び出してコンパイルしてくれるようなことできますか。
シームレスっていうのは、そういうのを言うんだけど。

791:sage
08/07/08 23:53:16
mingw5.1.4で--exec-charsetオプションが使えないのですが、
どうにか使えるようにはできないのでしょうか?

792:デフォルトの名無しさん
08/07/09 20:14:49
>>790
普通に出来るんじゃね?
これまでの流れ読んでないけど、790のことに関しては。

793:デフォルトの名無しさん
08/07/09 20:57:16
無理

794:デフォルトの名無しさん
08/07/09 23:42:37
>>793
何でよ?
Makefile書いといてviで:!makeでいいべ。

795:デフォルトの名無しさん
08/07/10 00:16:02
先生ー
MSYS 1.0.10のmsys.bat叩いてもコマンドプロンプトが一瞬表示されてもう一回コマンドプロンプトが一瞬表示されてそのあとなんも起こらないんだけどこれどーすればいいの?
コマンドプロンプト手動で出してmsys.bat呼んでやるとちゃんと起動されるんだけど…

環境はVista SP1 Ultimate

796:デフォルトの名無しさん
08/07/10 00:27:50
>>794
>>710をよく読めよ

797:デフォルトの名無しさん
08/07/10 00:28:40
1. 麻縄を輪状にして天井から吊す
2. 陰茎をその輪の中に通してユートピア

798:デフォルトの名無しさん
08/07/10 09:23:22
妥協案

WindowsホストなVirtualBox上のLinux仮想マシンにWine/VC++/Cygwinをインストールして
ホストの端末エミュレータから仮想マシンにログイン

Linux/Wine/VC++/CygwinホストなVirtualBox上のWindows仮想マシンの端末エミュレータから
ホストにログイン

ただしWineでVC++とCygwin使えるかは知らない。

799:デフォルトの名無しさん
08/07/10 22:46:59
簡単にVirtualBox使えばいいじゃん的な事言っている人いるけどさ、
VirtualBoxっつか仮想PCはかなり重いぞ。その点もちっとよく考えろよと。

800:デフォルトの名無しさん
08/07/10 22:56:31
>>799
意外に軽いぞ VirtualBox。
cygwinでGNOME動かすと使い物にならないが、VirtualBoxならかなりいい感じ。

ただ、cygwinとVirtualBoxは全然別物だよ。
Windowsの便利なツールとして使えるのがcygwin、
Windows上でただ単に別のOS動かして満足感を味わうのがVirtualBox。

801:デフォルトの名無しさん
08/07/13 13:25:27
えー、話の腰を折るようで恐縮ですが、

やねう企画代表者やねうらお(本名・磯崎元洋)が
・ソフトウェアの不正コピーを行っていた
・労働契約上の違反をしていた
・他は不正コピーしていないことを証明しようとしてエロゲーのパッケージを発見し、
 写真に撮ってアップロードしようとした。
URLリンク(d.hatena.ne.jp)
やねう企画の裏側(競馬の詐欺ソフトの製作現場)
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)
有限会社やねう企画(所在地・大阪府八尾市末広町2−1−2)が計画倒産
URLリンク(www.sia.go.jp)

やねうらおプロフィール
性格:友達から「チンピラ」「ヤクザ」と呼ばれている。前世で殺人鬼だった宿業を背負っているという妄想(自覚)あり。
最終学歴:専門学校卒
主な職歴:有限会社センキ(凌辱系アダルトゲームの製作会社)を経て独立、有限会社やねう企画を設立、2006年に計画倒産
代表作:『夜這いマニア』『盗撮マニア』『お楽しみCDシリーズ』『競馬詐欺ソフト』『BM98』

やねうらお語録
>「ワシのほうが潔癖やと思うんやけどな。
>絶対に違法コピーのソフトしか使わんし。
>たとえば強盗に入ったときに、ちょっとかわいそうになって
>十万円だけ残してったら、おかしいやろ?
>自分の『強盗する』という意思に対して矛盾やろ?
>だからワシは、一個も買ったソフトを使ったことがない!!」


802:デフォルトの名無しさん
08/07/13 13:27:31
最近、やねうらおは弓月(>>801)とか言う真性のキチガイに絡まれている

【自作自演】弓月城太郎氏に関するまとめ【神秘体験】
URLリンク(d.hatena.ne.jp)

803:デフォルトの名無しさん
08/07/14 12:42:37
リンクに関する質問なのですが、オブジェクトのリンク順番によって
Undefinedエラーが発生してしまいます。
例えば、"ld a.o b.o"ならOKで、"ld b.o a.o"だとエラーが発生するといった具合です。

リンク順番を適切(?)に設定しなければならないのは
CygwinかLinuxの仕様なのでしょうか?



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4776日前に更新/237 KB
担当:undef