[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 01/06 13:57 / Filesize : 237 KB / Number-of Response : 832
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Cygwin + MinGW + GCC 相談室 Part 3



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/


29 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:08:43 ]
MinGWでコンパイルされたオープンソースなアプリがあるのだけど
これって弄ればVC8でコンパイル出来るようになるのん?
素人の俺にもわかるように教えて

30 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:16:52 ]
>>29
できるかもしれんし、できないかもしれん。WinAPI以外のライブラリ(例えばsocket)を特に使っていないのなら、多分大丈夫。
使っている場合は、類似ライブラリ(上記のようにsocketならばWinSock)を使用するように修正する必要がある。

31 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:25:40 ]
C/C++以外で書かれてたりしても無理だな

32 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:29:26 ]
Ada とかか。

33 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:51:30 ]
サンクス
出来るかどうかはわからないけどやってみるよ

34 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:04:17 ]
>24
俺の記憶でも最初 UNIX-like って言ってたような気がするので変遷をさらってみた。

ttp://web.archive.org/web/20000815200506/sources.redhat.com/cygwin/
ttp://web.archive.org/web/20010515223905/cygwin.com/
>The Cygwin tools are ports of the popular GNU development tools and utilities for Windows 95, 98, and NT.

ttp://web.archive.org/web/20010629115427/www.cygwin.com/
>The Cygwin tools are ports of the popular GNU development tools and utilities for Windows.

↑まで次の文で UNIX-like API って記述がある。

ttp://web.archive.org/web/20010815132508/www.cygwin.com/index.html
ttp://web.archive.org/web/20011201190309/cygwin.com/index.html
>Cygwin is a UNIX environment for Windows.

ttp://web.archive.org/web/20020206235942/cygwin.com/index.html
ttp://web.archive.org/web/20021130213920/www.cygwin.com/
>Cygwin is a UNIX environment, developed by Red Hat, for Windows.

ttp://web.archive.org/web/20021231144231/cygwin.com/index.html
ttp://web.archive.org/web/20030423062911/www.cygwin.com/
>Cygwin is a UNIX environment for Windows.

web.archive.org/web/20030605214340/http://www.cygwin.com/
>Cygwin is a Linux-like environment for Windows.

35 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 04:53:36 ]
ホンマや!
何か趣旨替えでもしたんだろうか。

36 名前:デフォルトの名無しさん [2007/05/16(水) 11:27:30 ]
Windows XPで MinGW + MSYS で開発をしています。
コマンドプロンプトからMSYSのsh.exeを立ち上げて使っています。

この環境で、Cのプログラムから fprintf(stderr,"hoge\n"); とすると、
ちゃんと出力されません。

ちなみにMSYSのrvxtを普通に立ち上げて使えば、ちゃんと出力されます。

どうすれば出力されるようになりますでしょうか?
もっと適したスレがあったらすみません。

37 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:24:44 ]
>>36
sh-2.04$ cat test.c
#include <stdio.h>
int main(int argc, char **argv) { fprintf(stderr, "hoge\n"); }
sh-2.04$ gcc -o test.exe test.c
sh-2.04$ test
sh-2.04$ cat test2.c
#include <stdio.h>
int main(int argc, char **argv) { fprintf(stderr, "hoge\n"); return 0; }
sh-2.04$ gcc -o test2.exe test2.c
sh-2.04$ test2
hoge
sh-2.04$



38 名前:35 mailto:sage [2007/05/17(木) 10:15:46 ]
>>36
ありがとうございます。おかげさまで落ち着きが出て原因がわかりました。

「return 0」ではなくコンパイルオプションに「-mwindows」があることが原因でした。
コンパイルオプションに「-mconsole」をつけることで解決しました。

39 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 10:27:09 ]
WindowsXPにMingw+MSYSでプログラミングしています。
Mesa-6.5.3とglut-3.7.6をmakeし、/mingw/include /mingw/libに
ヘッダファイルとライブラリをコピーし次のサンプルプログラム
をコンパイルしたところlinkerエラーになってしまいます。

#include <GL/glut.h>
void display(void) { }
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

$ gcc -o test.exe test.c -lglut32 -lopengl32 -L/mingw/lib
C:/(hoge)/Temp/ccG2baaa.o:test.c:(.text+0x1c): undefined reference to `__glutInitWithExit'
C:/(hoge)/Temp/ccG2baaa.o:test.c:(.text+0x37): undefined reference to `__glutCreateWindowWithExit'
C:/(hoge)/Temp/ccG2baaa.o:test.c:(.text+0x52): undefined reference to `__glutCreateMenuWithExit'
C:/(hoge)/Temp/ccG2baaa.o:test.c:(.text+0xae): undefined reference to `glutDisplayFunc'
C:/(hoge)/Temp/ccG2baaa.o:test.c:(.text+0xb3): undefined reference to `glutMainLoop'
collect2: ld returned 1 exit status

リンカーがlibglut32.aを見つけられてないような気がしるのですが、
ライブラリをコピーするだけではだめなのでしょうか。



40 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 10:40:07 ]
>>39
リンカは引き数の順番に意味があるから、-Lを-lより前に持ってきてみたら?
#それでダメならまた別の理由と言うことになるけど。

41 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 13:16:54 ]
>40
コメントありがとうございます。
入れ替えてみましたが変わりありませんでした。

その昔触っていたFreeBSDでライブラリをコピーしたあとldconfig
し忘れていたような状態に似ているのですが、
MinGW+MSYSにldconfigはないようで。

42 名前:ライブラリが足りないとか? mailto:sage [2007/05/17(木) 13:36:18 ]
>>39
つ[nm -v /mingw/lib/libglut32.a | grep -w T | grep glutMainLoop]

43 名前:39 mailto:sage [2007/05/17(木) 14:47:14 ]
$ nm -v /mingw/lib/libglut32.a |grep -w T |grep glutMainLoop
00000000 T _glutMainLoop@0
$ nm -v /mingw/lib/libglut32.a |grep -w T |grep glutDisplayFunc
00000000 T _glutDisplayFunc@4
$ nm -v /mingw/lib/libglut32.a |grep -w T |grep __glutCreateMenuWithExit
00000000 T ___glutCreateMenuWithExit@8
$ nm -v /mingw/lib/libglut32.a |grep -w T |grep __glutCreateWindowWithExit
00000000 T ___glutCreateWindowWithExit@8
$ nm -v /mingw/lib/libglut32.a |grep -w T |grep __glutInitWithExit
00000000 T ___glutInitWithExit@12

一応あるみたいです。


44 名前:35 mailto:sage [2007/05/17(木) 14:58:19 ]
昔(2006/07/25頃)のmemoで申し訳ないですが、以下のようにしたらコンパイルできました。
---
C:\MinGW\lib には libglut32.a, libglut.a などがあるが、なぜか glut.h がない。
Windows 用の glut である,glut-3.7.6-bin.zip を入手、展開(www.xmission.com/~nate/glut.htmlから)
glut32.dll を C:\WINDOWS\system32 に入れる
ming32gl.zip を google 等で探して展開し、GL ディレクトリの中身をすべて、C:\MinGW\include\GL と置き換え。

* compile
gcc -o a.out test01.c -lopengl32 -lglut32

45 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 15:39:39 ]
>>39
確か普通に MinGW インストールしたらインポートライブラリ(libglut32.a)は
インストールされる気がしたんだが…dllとヘッダだけコピーすればOKじゃなかった?
ttp://cefiro.homelinux.org/topics/MinGW/setup-20070319.html
ttp://cefiro.homelinux.org/resources/doc/GLUT/install-mingw32-01.html

46 名前:39 mailto:sage [2007/05/17(木) 17:23:30 ]
いろいろコメントいただきありがとうございます。
主たる目的がMesaをソースからコンパイルするところに
ありまして、バイナリをコピーするというのではイマイチ
解決にはならなかったりします。(^_^;

ところで妙なことになりました。
このパソコンにはcygwinもインストールされていまして、
$ /c/cygwin/bin/gcc -o test.exe test.c -L/mingw/lib/ -lglut32 -lopengl32
とやると、実行ファイルができウィンドが表示できました。
全然めでたくはないです。
しかし一歩前進ということで。


47 名前:39 mailto:sage [2007/05/18(金) 10:00:29 ]
どうも自前でコピーしたglut.hが気に入らなかったようで、
>44 のヘッダファイルと差し替えるとコンパイルできました。
根本的な原因についてはおいおい調べることにします。

>35
CygwinがRedHatに吸収されてから替わったような気がします。




48 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 11:42:28 ]
cdeclとstdcallじゃないの?

49 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 12:33:25 ]
久々にcygwinやってみようとデフォでインスコしてみたら、容量でかすぎワラタw

50 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 08:33:25 ]
全部入れる香具師がいるとは

51 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 11:13:38 ]
全部入れたら2Gくらいか

52 名前:デフォルトの名無しさん [2007/05/19(土) 12:51:01 ]
質問するスレを間違っていましたら誘導お願いします
アセンブラにて
.global hoge
.type hoge, @function
という書き方があるのですが、.type以降の意味はなんでしょうか?


53 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 18:49:06 ]
>>52
アセンブラ… ( ゚д゚)ウッウー
pc11.2ch.net/test/read.cgi/tech/1174825173/l50

54 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 12:10:32 ]
>>53
誘導ありがとうございます
向こうで聞いてみます

55 名前:デフォルトの名無しさん [2007/05/20(日) 19:11:45 ]
>>53のスレで聞きましたけど
WindowsでGAS使いたいけど、どうすればいいのでしょう?
asm文書いてコンパイルしてリンカすると以下のようにエラーになってしまいます。

ld: warning: cannot find entry symbol _mainCRTStartup; defaulting to 00401000
a.out(.text+0x21):hello.c: undefined reference to `_alloca'
a.out(.text+0x26):hello.c: undefined reference to `__main'
a.out(.text+0x32):hello.c: undefined reference to `printf'

56 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 20:46:16 ]
>>55
せめてどんなプログラムを書いたか、どんなコマンドを入力したか、くらいは書こうや。

57 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 21:00:33 ]
>>55
C標準ライブラリともリンクしてあげてください。



58 名前:デフォルトの名無しさん [2007/05/20(日) 21:31:08 ]
>>55-56
すみません。

@Cで以下のようなソースを書きました。
#include <stdio.h>

int main()
{
printf("Hello World!");

return 0;
}

AGCC(MinGW 3.4.2)で -S 付けてアセンブリのソースを出力
B出てきたアセンブリを as を使い ld を実行すると>>55のようなエラーでました。

以上です。

59 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 21:37:10 ]
gcc -o hoge hoge.s

60 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 22:17:06 ]
>>58
リンカのオプションは?

61 名前:デフォルトの名無しさん [2007/05/20(日) 22:31:36 ]
>>60
リンカのオプションは何も付けていません。
付けないよまずいですかね?

62 名前:デフォルトの名無しさん [2007/05/21(月) 09:43:51 ]
みんなデバッガとして何を使ってる?

63 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 09:47:48 ]
syslog

64 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 11:00:47 ]
だーから MinGWとは、
ゴールデンウィークが最小限であることを言い表す言葉なんだって。



65 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 19:24:03 ]
VC

66 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 22:42:54 ]
insight使ってる
軟弱者でスマン

67 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:17:10 ]
gdb



68 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:23:45 ]
fprintf

Purifyplusとか使ってる金持ちおるんかいな。使い心地とか聞いてみたい。

69 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:53:26 ]
symdeb

70 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 00:03:12 ]
autoconfって必要? 一発でまともにconfigure通ったことが無い。

71 名前:デフォルトの名無しさん mailto:sage [2007/05/26(土) 21:14:23 ]
autotoolizeされたソフトであっても Cygwin や MinGW+MSYS で
テストされていないものが多いからそんなもんだよ…
必要なライブラリが足りてないとかだったら >>70 が悪いだけだが…

72 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 15:47:12 ]
cygwinでscanfのEOFはctrl+Dですか?

73 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 15:50:11 ]
いいえ bash で CTRL+D すると EOF になります。

74 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 18:45:46 ]
cshでもそうだな。
CTRL+DがEOFじゃないcygwin上のシェルは何になるの?

75 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 18:51:44 ]
cmd.exe とか?
「cygwin上の」って意味が分からんから外れてるかもしれんが。

76 名前:デフォルトの名無しさん [2007/06/14(木) 03:32:28 ]
cygwinホストからlinuxをターゲットにクロスコンパイルしようと思い、
gcc-4.2.0 のソースを ~/gcc/gcc-4.2.0.tar.bz2 に落としてきて展開し、その ~/gcc/gcc-4.2.0 で
$ ./configure --target=i686-pc-linux --enable-languages=c,c++ --prefix=/usr/local/gcc-4.2.0
$ make CC=gcc LANGUAGES="c c++"
/home/username/gcc/gcc-4.2.0/host-i686-pc-cygwin/gcc/as: line 2: exec: -o: invalid option
exec: usage: exec [-cl] [-a name] file [redirection ...]
make[2]: *** [crtbegin.o] Error 1
make[1]: *** [all-gcc] Error 2
make: *** [all] Error 2
と出ました。
因みに as の中身は、 exec "$@" で、の引数は下のようでした。
-Qy -o crtbegin.o /cygdrive/c/DOCUME~1/username/LOCALS~1/Temp/ccbwsMK0.s
コマンドが見当たりません。

エラーの原因が分かりません。
ググっても英語のBBS程度しか出て来ず、解決に至りません。

77 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 10:54:55 ]
いまどきエミュ環境なんか使ってるなよ。
VMか、colinuxか、本物のLinuxを入れるのが一番いい。



78 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 11:03:27 ]
>>76
そのasのラッパに、asの実体のパスがうまく伝わってないっぽいな。
本来なら exec 〜/as -Qy -o となるところが exec -Qy -o となっているんだろう。

cygwin上でlinuxのcrossなんてきちんと検証されてないだろ。
自力で解決できないならあきらめろ。

79 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 12:43:55 ]
>>76
クロスアセンブラは用意してある?


80 名前:デフォルトの名無しさん mailto:sage [2007/06/14(木) 14:40:46 ]
gcc だけじゃなくて binutils, glibc が必要

81 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 20:29:47 ]
>>77
Win32 のコマンドラインアプリと、UNIX 由来のツールをパイプでつなげるときはどうするの
WINE だったら大爆笑だけど

82 名前:デフォルトの名無しさん mailto:sage [2007/06/15(金) 23:27:53 ]
パイプでつなげて使いたいようなWin32のコマンドラインアプリって・・・ある?

83 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 00:31:19 ]
>>82
dir | more

84 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 02:01:46 ]
>>81
だから本来そういう用途のためのcygwinだろ。
何が悲しくてwin32でlinuxのcrossを動かさにゃならんのだ。逆ならともかく。

85 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 08:29:23 ]
UNIX系のコマンドは正常のときは比較的無口で
エラーのときは情報を必要十分な量だけ的確に吐くから
パイプで繋げるときに有効性が出てくるんだけど

Windows系のそれは無駄口が多いくせに
その割に状況を正確に把握出来ないほど
決定的に不足していて使い物にならないことが多い



86 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 08:43:24 ]
linuxで試しにdirと打ってみたらファイル一覧が表示された
lsのエイリアスが張ってあるな

87 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 08:54:03 ]
>>86
最近は、coreutilsに入ってるはず > dir




88 名前:デフォルトの名無しさん mailto:sage [2007/06/16(土) 13:59:57 ]
>>85
対象としてるユーザ層がそもそも違うOSだからな。

89 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 14:47:27 ]
MingwのOpenMP対応まだぁ?

90 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 23:25:01 ]
>>82
自分でデータ処理するための細々したツールをmingwで書いてパイプでつないでるよ。
mingwだからwin32アプリだ。
つーか、そうしたいからcygwinやらmingwやら使ってるんじゃないの?
GUIアプリ作りたきゃ、タダのvisual studio使ったほうがマシだよ。

91 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 23:40:02 ]
>>90
その用途だと mingw である必然がないと思うが…
CUI でも Visual Studio 使って作ればいいんじゃね?
# cygwin で POXIS API使って作りたいとか cygwin 上の
# UNIX ライクツールと組み合せて使うとかならわかるんだが…

92 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 14:47:29 ]
個人の自由にけちをつける変態スレはここですか?

93 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 16:24:16 ]
公共の場でオナニーをする奴はけちつけられると思うヨー

94 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 16:06:19 ]
GCJの質問もOKですか?

95 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:56:17 ]
下記のページを見てdllを作ろうとしています。
トップページ
www2.atwiki.jp/ccw/pages/4.html
見ているところは下のほうの GCC - DLL の作成 のところです。

ページに書いてある通りのファイル名のファイルを作成し、中身はコピーペーストで
貼り付けました。

ページ内の gcc -c calc.c はうまくいっていると思います。
(通常のアプリで -c でコンパイルしたものをリンクすると正常動作するので)

ところが次の
dllwrap -k -def calc.def --driver-name gcc -o calc.dll calc.o
が失敗します。エラーメッセージは下記です。
D:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: Can't open base file \/cca02560.base
collect2: ld returned 1 exit status
D:\MinGW\bin\dllwrap.exe: gcc exited with status 1

原因は何でしょうか?

96 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 12:49:07 ]
>>96
--driver-name gccを取ったりしたらうまくいかない?


97 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:47:58 ]
>>96
試してみたところ同じですね。
ところで、一応解決しました。
過去にインストールした古い dllwrap がPC内に残っているのを発見したので、
それに差し替えたところ正常動作しました。
新しいものだと何か設定が必要なのか、
あるいは私のPCの環境が新しいdllwrapに悪影響を及ぼすのか、
それともdllwrapのバクなのか(可能性薄いかな)良くわからんです。

正常動作したバージョンは下記です。
DllTest> dllwrap --version
GNU D:\MinGW\bin\dllwrap.exe 2.15.94 20050118

うまくいかなかったバージョンは下記です。
DllTest> dllwrap --version
GNU D:\MinGW\bin\dllwrap.exe 2.16.91 20060119

確認したソースは下記です。
www.borujoa.org/upload/source/upload12756.zip



98 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:02:22 ]
SJISコードがうごかねー。
いい加減、gccもデフォルトでSJISに対応してくれよな。。。
せめて単純追加オプションで。

99 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:06:54 ]
>>98
つ ttp://www.noppi.jp/diary/?date=20041126

100 名前:95 , 97 mailto:sage [2007/07/07(土) 00:29:16 ]
dllwrapに関して質問した経緯上、引き続きdllwrapを調査していたのですが、
どうやら
www.mingw.org/
からリンクが貼られている
sourceforge.net/project/showfiles.php?group_id=2435

binutils-2.17.50-20060824-1.tar.gz
に問題があるようです。
おそらく、
binutils-2.17.50-20060824-1.tar.gzのdllwrapを使用すると >>95 が再現するものと思われます。
(確認する根性のある人は従来のdllwrap.exeはバックアップしておいてください。)
原因はTMPDIRもしくはTMPもしくはTEMPが正しく設定されていない状態でコンパイルされたdllwrap
が、binutils-2.17.50-20060824-1.tar.gzに含まれているせいだと思われます。
それらが設定されていない場合、stdio.hの #define _P_tmpdir "\\" が中間ファイルの先頭に配置され、
中間ファイルの作成に支障をきたすようです。
>>95と同じ症状で困っている方は、dllwrapのオプションに
 -base-file aazz1199.base
等を追加すると正常動作するものと思われます。
以上、ご報告まで。間違いがあれば指摘お願いします。

101 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 12:51:43 ]
こちらで質問するのがあっているのがわからないのですがC言語の勉強を始めたのです、
研修先がunix を使い vi gcc gdb を使っているので自宅でも似た環境をと思ってcygwinを利用しようと思い導入いたしました。
allでインストールをしてとりあえずhello c と表示させるプログラムを書きました。
ソースは下記のとおりです。
#include <stdio.h>

int main(void)
{
printf("Hello World!\n");

return 0;
}
この程度なのでコンパイルエラーは起きていません。ファイル名はtest.c です。
問題点は3つありまして
1つ目
gcc test.c でコンパイルをした際に a.exeができます。a.exe で実行した際に bash: a.exe: command not foundと出てしまいます。 なぜ実行できないのでしょうか?
2つ目
gcc -o test test.c でコンパイルしてできたtest.exeをtest.exeで実行しても実行はされているようなのですが(エラー等がでていないだけの理由ですが・・・)
何も表示されず 次の入力待ちの状態になってしまいます。なぜ表示されないのでしょうか?
3つ目
以上の理由からぐぐってみたのですが解決方法がわからずcygwin上でなくウィンドウズ上のコマンドライン?で実行できるようにあったので試してみました。
gcc -mno-cygwin test.c です。これでコンパイルしたものをウィンドウズ上で実行してみたのですが1瞬ちらっと表示されて窓が消えてしまいます。
ぎりぎりプログラムとおり表示されていると確認できたのですがこれ以降このままだと困るのでしっかり表示されるようにするにはどうしたらいいのか?

unixも今回初めて触って勉強中なのでおかしな言葉遣いや初心者過ぎるミスなのかもしれませんが、
ご回答のほどよろしくお願いします。 
また、それぐらい調べろよ・・・と思うかもしれませんが cygwin c言語 で検索してみたのですが
質問3ぐらいの方法しか見つかりませんでしたので、検索ワードぐらいでも教えていただけれたらと思います。


102 名前:101 mailto:sage [2007/07/07(土) 12:57:38 ]
すみません
細かいところですが
 hello c でなくHello World! を表示させるでした・・・

103 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 13:05:59 ]
>>101
1.
./a

2.
testという既存のコマンドが実行されている。testに関してはmanpage参照。
自作のtest.exeを動かしたいのなら./test

3.
起動したらHello, world!と出力してすぐ終了するプログラムなんだから
ウィンドウがすぐ閉じるのは当然。むしろ閉じてくれないと意図しない動作になるでしょ。
コマンドプロンプトから実行するか、return 0;の前にscanfなりgetcharなり
使えるのならgetcharなりで入力待ちを作る。

104 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 13:29:48 ]
>>101
cygwinじゃなくて、Unix系コマンドインタプリタの基礎知識なんだが。

Unix系コマンドインタプリタ(以下シェル)では、実行モジュールを探すのにPATH環境変数を利用する。
ロートルUnixオペレータはしばしばカレントディレクトリ(.)をPATH環境変数に含めてしまう。
そうすると、カレントディレクトリの実行モジュールがパスなし(ファイル名のみ)で実行できてしまう。
最近のシェルは一般的にディフォルトではカレントディレクトリをPATHに含めるようなことはしないので、
パスなしでは実行できない。それだけのこと。

何故カレントディレクトリをPATHに含めてはいけないか、についてはスレ違いでもあるので
自身で調査することをお勧めする。

105 名前:101 mailto:sage [2007/07/08(日) 14:28:03 ]
>>103
ご丁寧にありがとうございます。
説明されればああ、当たり前のことなんだと理解はできるのですが
解決までもっていけないほど初心者だったので恥ずかしく思っています。
>>104
言い訳になってしまうのですがパスについてすらならっていなかったので
丁寧に説明していただいてありがとうございます。
カレントディレクトリをPATHに含めない件はスレ違いとのことですが
お勧めしていただいたので調べたので必要ないかもですが
理解したという報告まで・・ 環境によってコマンドが変わる事を避けるためと理解しました。
ありがとうございます。


返答が遅れましたが本当にスレ汚しのような質問にご丁寧に答えていただいてありがとうございます。
cygwinのインストールがおかしいのかと消しては入れなおしたりを半日以上繰り返していた
ため本当に助かりました。
本当にありがとうございます。

106 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 15:30:51 ]
たぶんみんな知ってるから
わざわざ報告しなくてもいいと思う
そのレスもこのレスも無駄と判断するのが
UNXクオリティ

107 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 16:26:11 ]
俺は解決したらそれっきりって奴よりいいと思うけどな。



108 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 18:41:13 ]
ムダかどうかというムダなレスが三つ(これも含む)増えてしまったわけだが。

109 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:13:23 ]
cygwinを導入し、windowsのコマンドプロンプトでUNIXコマンドを利用しています。
ls や which といった一般的なコマンドは使用できるのですが、
../hoge.exe
などと打ち込むと

'.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

というメッセージが出てしまいます。
./ を有効にすることは可能でしょうか?
OSはWindows XP pro です。
ご教授お願いいたします

110 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 02:28:45 ]
>>109
cmd.exe は / をパスの区切りとしては見てくれない。
.\hoge.exe でがまんせい。


111 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 02:44:29 ]
cygwin 導入したんなら、cygwin で作業すればいいと思うんだけど。

112 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 04:43:23 ]
APIレベルでは/でも通るって本当?

113 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 08:46:54 ]
本当?

114 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:34:08 ]
本当。

115 名前:デフォルトの名無しさん [2007/07/21(土) 19:31:36 ]
Windows Vista にcygwinをインストールしたいんだけど、
ダウンロードが終わった後のインストール段階で、33%くらい進んだところで必ずとまってしまって、
後は何時間放置してもうんともすんとも言わないんだけど、仕様?

116 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 21:22:35 ]
おそらく後ろに別のウィンドウが隠れている

117 名前:デフォルトの名無しさん [2007/07/21(土) 21:25:21 ]
いや、何もなかったんだが



118 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 21:30:18 ]
ぼくのちんちんも皮の中に何か隠れています。

119 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 21:38:36 ]
箪笥の下に一匹いました

120 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:34:02 ]
MinGW + GCC から Excel ファイルを作ろうと思います。
どのようにするのが一番コンパクトですかね?

121 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:37:35 ]
>>120
xls限定? csvじゃダメなの?

122 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:48:55 ]
>>120
最近POIをgcjでコンパイルして,CNIでC++から使おうとして挫折しましたorz
トライしません?

この方法Linux上だとうまくいったのだけど,
Linux上でwin32へのクロスコンパイル環境を作って,
それで試したら私は失敗しました.


123 名前:120 mailto:sage [2007/07/25(水) 11:33:31 ]
>>121
うん、xlsがいいな。できれば幅変えたり色つけたりしたい。

>>122
Javaやrubyを通せばできなくはないけど、C++使っててそれは・・ねぇ。

そんなに需要がないわけでもなさそうなのに情報がみつからん・・・。

124 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:30:29 ]
Win32環境だったらExcelをCOM経由で呼び出すのはどうだ?
OOoもいけるのかな?

125 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:51:47 ]
COMを使うならVC++の#importが恋しい。

126 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:09:14 ]
プロプラなんだから情報なんざそうそうあるわけねぇ
OOoから物故抜け

127 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:48:00 ]
OOoってmingwでビルドできるんだっけ?




128 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 19:27:22 ]
mingwのgccってstl エラー無く作動するの?

129 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 22:12:06 ]
mingwでSTL使ったら感染するのかな?
GPLに






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<237KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef