トップページ⇒tech
1001コメント350KB

Cygwin + MinGW + GCC 相談室 Part 3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/04/30(月) 23:52:47
Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。

過去スレ:
cygwin + mingwn + gcc 相談室 Part2
http://pc11.2ch.net/test/read.cgi/tech/1126103347/
cygwin + mingwn + gcc 相談室
http://pc8.2ch.net/test/read.cgi/tech/1058134693/

関連サイト:
Cygwin http://www.cygwin.com/
MinGW http://www.mingw.org/

関連スレッド:
GCCについて part7
http://pc11.2ch.net/test/read.cgi/tech/1145357824/
【激遅】AppleGCC【絶望】
http://pc11.2ch.net/test/read.cgi/tech/1173267844/
0002デフォルトの名無しさん2007/05/01(火) 00:17:39
乙
0003デフォルトの名無しさん2007/05/01(火) 01:25:27
                               ____
                              /     \   ∧__T _ ,,,r -r-T‐-、
                              /        \─   。r *o:*::f:::r:::..l
                    __,-,,-、  ___'/  /\   /\\::::::::*o;;;ro ot_f_ヽ丿
                   __/| | l |ヾ-"~ |       (_人)    | -v--v-'''''''"V"~~┴
               l⌒ 二 -l ..uUU""l-- \           /
              └   l´  (,,,, ./., - イ          /
      .ト            |  {  |,.ィ'''フ''''=、r'"~      i,, `ヽr''"`ヽ、 ヽ、
   ヽ、i / .∠         /  /  .| ノ"    )=、 ̄ ̄,,..ィ'"´i       ヽ、
    / y'_/          /  / /  |     ノ  ´ ̄ `Y"´            i
 .ゝ-+-::i⌒ヽ        /  ''   ,.|   .__,,..         レ      _,,,,、       j、、
  .__/::| |  i >>1    /     r´ } ィ'''i"        J   ,,.ィ'"~  `'ヲ''ー-、ノ、 ヽ、
   / /:| |  i       ,,ノ     / ,,l  ,人        ,,l、        ノt   ) `ヽヽ
    i ::| |  )     .| /,    ,;'  .人 /"``ゝ、       人       ,,イ  jt、  ヽ   i
    /i ::し//      |''´  、 ` _ノ /、   `ー--;::-ニ"_,ゝ=---‐''"   ,ノ ヽ、 ヽ  t、
     ::| ((      ヾ、ノ,    .__ノ´ ヽ、 r  、 f"   `i´ ̄` Y  `ヽ /  ゝ-,ヲ'''   )
0004デフォルトの名無しさん2007/05/01(火) 03:06:07
>>1
乙
0005デフォルトの名無しさん2007/05/01(火) 03:52:09
スレタイを修正したのは良かったと思うよ
0006デフォルトの名無しさん2007/05/01(火) 20:34:51
Apple版GCCのスレは全然関連してないと思うが
0007デフォルトの名無しさん2007/05/03(木) 12:25:29
枯れ木も山の賑わいと申しまして・・・
GCCの話すらしてないな、あそこは。
0008デフォルトの名無しさん2007/05/03(木) 23:18:11
>>1乙

前スレはタイトル修正せずに立ててしまって正直スマンカッタ。
0009デフォルトの名無しさん2007/05/11(金) 21:20:02
質問です。

msys用のmanコマンドって落ちてませんか?
0010デフォルトの名無しさん2007/05/11(金) 23:04:07
>>9
http://www.mingw.org/MinGWiki/index.php/FAQ
manpageで検索すれ
0011デフォルトの名無しさん2007/05/14(月) 05:52:03
実数x,yの値をキーボードから入力し,足し算,引き算,掛け算,割り算の結果を同時に出力できるプログラムを作成する

の作成方法教えて下さーいm(_ _)m
0012デフォルトの名無しさん2007/05/14(月) 06:07:40
宿題は(略
0013デフォルトの名無しさん2007/05/14(月) 07:15:33
>>11
氏ね
0014デフォルトの名無しさん2007/05/14(月) 07:16:12
UNIX板Cygwinスレとのマルチかよ

何故こいつはcygwinスレで質問するのか
そもそもなぜunix板にcygwinスレがあるのか

いくつもの謎を乗り越えて
このスレは育っていくのだな
0015デフォルトの名無しさん2007/05/14(月) 09:02:47
>>11
エディタでソース書いてコンパイラに食わせる。
0016デフォルトの名無しさん2007/05/14(月) 09:33:40
cygwin はどっちかっつーと Linux 板の領分な気がするんだけど、
Linux 板には 1 つもスレないのな。
0017デフォルトの名無しさん2007/05/14(月) 10:45:01
>>16
cygwinはunixでもlinuxでもないんだからなくてもおかしくはないだろ。
bashを始めとした擬似Unix環境なんだからあってもおかしくはないが。
0018デフォルトの名無しさん2007/05/14(月) 10:53:05
本家の第一声がこれだからな。

Cygwin is a Linux-like environment for Windows.

まあ、Windows 板にあるのがベストだと思うが、1 つしかスレないのな。
0019172007/05/14(月) 10:54:22
そうか、じゃ、「擬似Linux環境」に訂正w
0020デフォルトの名無しさん2007/05/14(月) 10:56:01
>>18
2つあったら重複で削除だろうに、「1つしか」って何が不満だ?
0021デフォルトの名無しさん2007/05/14(月) 11:02:56
Unix 板には cygwin 関連スレが 4 つあるからね。
一番 Unix 板が cygwin に関心があるのかね。
0022デフォルトの名無しさん2007/05/14(月) 13:41:08
>21
つーか、Linux板ではLinuxじゃないから板違いと言われそうだし
Win板はレベル低いヤツはとことん低いからな
Cygwinとは関連が微妙に薄いながらも
何気に一番まともにスレを進行できるのがUnix板ってことなんじゃね
0023デフォルトの名無しさん2007/05/14(月) 21:45:31
一応関連スレはひととおりみてるけど
ここが一番会話が充実してる気がする
0024デフォルトの名無しさん2007/05/15(火) 13:10:41
>>18
もともと UNIX-like environment って言ってて、
いつの頃からか linux をターゲットに路線変更して
linux-like environment を標榜するようになった



んだったと記憶してるが俺の記憶は定かではない。
0025デフォルトの名無しさん2007/05/15(火) 13:35:51
>>21
坊やが気まぐれで立てた糞スレが何年も消えずに残ってるだけ
あそこは過疎板だから数年放置しても落ちないんだな
0026デフォルトの名無しさん2007/05/15(火) 13:49:16
なるほど。
0027デフォルトの名無しさん2007/05/15(火) 14:31:37
>>24
しかし Linux をターゲットってのもおかしな話なんだよねぇ…
cygwin が kernel 含むわけでもないし…
POSIX and GNU environment って感じ?
0028デフォルトの名無しさん2007/05/15(火) 14:33:00
まあ、-like だからいいんじゃね?
0029デフォルトの名無しさん2007/05/15(火) 16:08:43
MinGWでコンパイルされたオープンソースなアプリがあるのだけど
これって弄ればVC8でコンパイル出来るようになるのん?
素人の俺にもわかるように教えて
0030デフォルトの名無しさん2007/05/15(火) 16:16:52
>>29
できるかもしれんし、できないかもしれん。WinAPI以外のライブラリ(例えばsocket)を特に使っていないのなら、多分大丈夫。
使っている場合は、類似ライブラリ(上記のようにsocketならばWinSock)を使用するように修正する必要がある。
0031デフォルトの名無しさん2007/05/15(火) 16:25:40
C/C++以外で書かれてたりしても無理だな
0032デフォルトの名無しさん2007/05/15(火) 16:29:26
Ada とかか。
0033デフォルトの名無しさん2007/05/15(火) 16:51:30
サンクス
出来るかどうかはわからないけどやってみるよ
0034デフォルトの名無しさん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/http://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/http://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/http://www.cygwin.com/index.html
ttp://web.archive.org/web/20011201190309/http://cygwin.com/index.html
>Cygwin is a UNIX environment for Windows.

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

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

http://web.archive.org/web/20030605214340/http://www.cygwin.com/
>Cygwin is a Linux-like environment for Windows.
0035デフォルトの名無しさん2007/05/16(水) 04:53:36
ホンマや!
何か趣旨替えでもしたんだろうか。
0036デフォルトの名無しさん2007/05/16(水) 11:27:30
Windows XPで MinGW + MSYS で開発をしています。
コマンドプロンプトからMSYSのsh.exeを立ち上げて使っています。

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

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

どうすれば出力されるようになりますでしょうか?
もっと適したスレがあったらすみません。
0037デフォルトの名無しさん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$
0038352007/05/17(木) 10:15:46
>>36
ありがとうございます。おかげさまで落ち着きが出て原因がわかりました。

「return 0」ではなくコンパイルオプションに「-mwindows」があることが原因でした。
コンパイルオプションに「-mconsole」をつけることで解決しました。
0039デフォルトの名無しさん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を見つけられてないような気がしるのですが、
ライブラリをコピーするだけではだめなのでしょうか。

0040デフォルトの名無しさん2007/05/17(木) 10:40:07
>>39
リンカは引き数の順番に意味があるから、-Lを-lより前に持ってきてみたら?
#それでダメならまた別の理由と言うことになるけど。
0041デフォルトの名無しさん2007/05/17(木) 13:16:54
>40
コメントありがとうございます。
入れ替えてみましたが変わりありませんでした。

その昔触っていたFreeBSDでライブラリをコピーしたあとldconfig
し忘れていたような状態に似ているのですが、
MinGW+MSYSにldconfigはないようで。
0042ライブラリが足りないとか?2007/05/17(木) 13:36:18
>>39
つ[nm -v /mingw/lib/libglut32.a | grep -w T | grep glutMainLoop]
0043392007/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

一応あるみたいです。
0044352007/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 を入手、展開(http://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
0045デフォルトの名無しさん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
0046392007/05/17(木) 17:23:30
いろいろコメントいただきありがとうございます。
主たる目的がMesaをソースからコンパイルするところに
ありまして、バイナリをコピーするというのではイマイチ
解決にはならなかったりします。(^_^;

ところで妙なことになりました。
このパソコンにはcygwinもインストールされていまして、
$ /c/cygwin/bin/gcc -o test.exe test.c -L/mingw/lib/ -lglut32 -lopengl32
とやると、実行ファイルができウィンドが表示できました。
全然めでたくはないです。
しかし一歩前進ということで。
0047392007/05/18(金) 10:00:29
どうも自前でコピーしたglut.hが気に入らなかったようで、
>44 のヘッダファイルと差し替えるとコンパイルできました。
根本的な原因についてはおいおい調べることにします。

>35
CygwinがRedHatに吸収されてから替わったような気がします。
0048デフォルトの名無しさん2007/05/18(金) 11:42:28
cdeclとstdcallじゃないの?
0049デフォルトの名無しさん2007/05/18(金) 12:33:25
久々にcygwinやってみようとデフォでインスコしてみたら、容量でかすぎワラタw
0050デフォルトの名無しさん2007/05/19(土) 08:33:25
全部入れる香具師がいるとは
0051デフォルトの名無しさん2007/05/19(土) 11:13:38
全部入れたら2Gくらいか
0052デフォルトの名無しさん2007/05/19(土) 12:51:01
質問するスレを間違っていましたら誘導お願いします
アセンブラにて
.global hoge
.type hoge, @function
という書き方があるのですが、.type以降の意味はなんでしょうか?
0053デフォルトの名無しさん2007/05/19(土) 18:49:06
>>52
アセンブラ… ( ゚д゚)ウッウー
http://pc11.2ch.net/test/read.cgi/tech/1174825173/l50
0054デフォルトの名無しさん2007/05/20(日) 12:10:32
>>53
誘導ありがとうございます
向こうで聞いてみます
0055デフォルトの名無しさん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'
0056デフォルトの名無しさん2007/05/20(日) 20:46:16
>>55
せめてどんなプログラムを書いたか、どんなコマンドを入力したか、くらいは書こうや。
0057デフォルトの名無しさん2007/05/20(日) 21:00:33
>>55
C標準ライブラリともリンクしてあげてください。
0058デフォルトの名無しさん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のようなエラーでました。

以上です。
0059デフォルトの名無しさん2007/05/20(日) 21:37:10
gcc -o hoge hoge.s
0060デフォルトの名無しさん2007/05/20(日) 22:17:06
>>58
リンカのオプションは?
0061デフォルトの名無しさん2007/05/20(日) 22:31:36
>>60
リンカのオプションは何も付けていません。
付けないよまずいですかね?
0062デフォルトの名無しさん2007/05/21(月) 09:43:51
みんなデバッガとして何を使ってる?
0063デフォルトの名無しさん2007/05/21(月) 09:47:48
syslog
0064デフォルトの名無しさん2007/05/21(月) 11:00:47
だーから MinGWとは、
ゴールデンウィークが最小限であることを言い表す言葉なんだって。

0065デフォルトの名無しさん2007/05/21(月) 19:24:03
VC
0066デフォルトの名無しさん2007/05/21(月) 22:42:54
insight使ってる
軟弱者でスマン
0067デフォルトの名無しさん2007/05/22(火) 00:17:10
gdb
0068デフォルトの名無しさん2007/05/22(火) 16:23:45
fprintf

Purifyplusとか使ってる金持ちおるんかいな。使い心地とか聞いてみたい。
0069デフォルトの名無しさん2007/05/22(火) 16:53:26
symdeb
0070デフォルトの名無しさん2007/05/26(土) 00:03:12
autoconfって必要? 一発でまともにconfigure通ったことが無い。
0071デフォルトの名無しさん2007/05/26(土) 21:14:23
autotoolizeされたソフトであっても Cygwin や MinGW+MSYS で
テストされていないものが多いからそんなもんだよ…
必要なライブラリが足りてないとかだったら >>70 が悪いだけだが…
0072デフォルトの名無しさん2007/06/03(日) 15:47:12
cygwinでscanfのEOFはctrl+Dですか?
0073デフォルトの名無しさん2007/06/03(日) 15:50:11
いいえ bash で CTRL+D すると EOF になります。
0074デフォルトの名無しさん2007/06/03(日) 18:45:46
cshでもそうだな。
CTRL+DがEOFじゃないcygwin上のシェルは何になるの?
0075デフォルトの名無しさん2007/06/03(日) 18:51:44
cmd.exe とか?
「cygwin上の」って意味が分からんから外れてるかもしれんが。
0076デフォルトの名無しさん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程度しか出て来ず、解決に至りません。
0077デフォルトの名無しさん2007/06/14(木) 10:54:55
いまどきエミュ環境なんか使ってるなよ。
VMか、colinuxか、本物のLinuxを入れるのが一番いい。
0078デフォルトの名無しさん2007/06/14(木) 11:03:27
>>76
そのasのラッパに、asの実体のパスがうまく伝わってないっぽいな。
本来なら exec 〜/as -Qy -o となるところが exec -Qy -o となっているんだろう。

cygwin上でlinuxのcrossなんてきちんと検証されてないだろ。
自力で解決できないならあきらめろ。
0079デフォルトの名無しさん2007/06/14(木) 12:43:55
>>76
クロスアセンブラは用意してある?
0080デフォルトの名無しさん2007/06/14(木) 14:40:46
gcc だけじゃなくて binutils, glibc が必要
0081デフォルトの名無しさん2007/06/15(金) 20:29:47
>>77
Win32 のコマンドラインアプリと、UNIX 由来のツールをパイプでつなげるときはどうするの
WINE だったら大爆笑だけど
0082デフォルトの名無しさん2007/06/15(金) 23:27:53
パイプでつなげて使いたいようなWin32のコマンドラインアプリって・・・ある?
0083デフォルトの名無しさん2007/06/16(土) 00:31:19
>>82
dir | more
0084デフォルトの名無しさん2007/06/16(土) 02:01:46
>>81
だから本来そういう用途のためのcygwinだろ。
何が悲しくてwin32でlinuxのcrossを動かさにゃならんのだ。逆ならともかく。
0085デフォルトの名無しさん2007/06/16(土) 08:29:23
UNIX系のコマンドは正常のときは比較的無口で
エラーのときは情報を必要十分な量だけ的確に吐くから
パイプで繋げるときに有効性が出てくるんだけど

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

0086デフォルトの名無しさん2007/06/16(土) 08:43:24
linuxで試しにdirと打ってみたらファイル一覧が表示された
lsのエイリアスが張ってあるな
0087デフォルトの名無しさん2007/06/16(土) 08:54:03
>>86
最近は、coreutilsに入ってるはず > dir
0088デフォルトの名無しさん2007/06/16(土) 13:59:57
>>85
対象としてるユーザ層がそもそも違うOSだからな。
0089デフォルトの名無しさん2007/06/20(水) 14:47:27
MingwのOpenMP対応まだぁ?
0090デフォルトの名無しさん2007/06/21(木) 23:25:01
>>82
自分でデータ処理するための細々したツールをmingwで書いてパイプでつないでるよ。
mingwだからwin32アプリだ。
つーか、そうしたいからcygwinやらmingwやら使ってるんじゃないの?
GUIアプリ作りたきゃ、タダのvisual studio使ったほうがマシだよ。
0091デフォルトの名無しさん2007/06/21(木) 23:40:02
>>90
その用途だと mingw である必然がないと思うが…
CUI でも Visual Studio 使って作ればいいんじゃね?
# cygwin で POXIS API使って作りたいとか cygwin 上の
# UNIX ライクツールと組み合せて使うとかならわかるんだが…
0092デフォルトの名無しさん2007/06/22(金) 14:47:29
個人の自由にけちをつける変態スレはここですか?
0093デフォルトの名無しさん2007/06/22(金) 16:24:16
公共の場でオナニーをする奴はけちつけられると思うヨー
0094デフォルトの名無しさん2007/06/27(水) 16:06:19
GCJの質問もOKですか?
0095デフォルトの名無しさん2007/07/04(水) 18:56:17
下記のページを見てdllを作ろうとしています。
トップページ
http://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

原因は何でしょうか?
0096デフォルトの名無しさん2007/07/05(木) 12:49:07
>>96
--driver-name gccを取ったりしたらうまくいかない?
0097デフォルトの名無しさん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

確認したソースは下記です。
http://www.borujoa.org/upload/source/upload12756.zip
0098デフォルトの名無しさん2007/07/07(土) 00:02:22
SJISコードがうごかねー。
いい加減、gccもデフォルトでSJISに対応してくれよな。。。
せめて単純追加オプションで。
0099デフォルトの名無しさん2007/07/07(土) 00:06:54
>>98
つ ttp://www.noppi.jp/diary/?date=20041126
010095 , 972007/07/07(土) 00:29:16
dllwrapに関して質問した経緯上、引き続きdllwrapを調査していたのですが、
どうやら
http://www.mingw.org/
からリンクが貼られている
http://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
等を追加すると正常動作するものと思われます。
以上、ご報告まで。間違いがあれば指摘お願いします。
0101デフォルトの名無しさん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ぐらいの方法しか見つかりませんでしたので、検索ワードぐらいでも教えていただけれたらと思います。
■ このスレッドは過去ログ倉庫に格納されています