[表示 : 全て 最新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/


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




721 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:44:53 ]
もっと微妙になってしまいそうな気もするが…

722 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 03:51:12 ]
cygwin1.dllはアッパーコンパチにして欲しいよ。マジで。

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

724 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 03:40:27 ]
>>723
どの環境のgetrlimit()?


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

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


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

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

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



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

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

732 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 10:51:25 ]
Makefile一個書くのがそんなに嫌なのかな?

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


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

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

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

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

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

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

737 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 12:06:52 ]
>>736
%: %.c
    gcc -o $@ $<

ってMakefileに書いてみ

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

これで解決です。

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

739 名前:735 mailto:sage [2008/06/03(火) 12:59:50 ]
>>738
やっぱりそうだったのかw 道理で話が噛み合わないと思った。

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



741 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:02:35 ]
やっつけでMakefile書いてきたツケが…

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

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

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

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


747 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 13:24:26 ]
>>744
vpathとか

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

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

750 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 14:22:26 ]
>>744
あまり良くない方法らしいがMAKEFILES環境変数

make makes many problems
pc11.2ch.net/test/read.cgi/tech/1029599472/387



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

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

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

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


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



760 名前:758 mailto:sage [2008/06/11(水) 14:14:30 ]
MinGW Developer Studio 2.05
を使用してDLLを作っています。



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


762 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:23:31 ]
C++側の話なので該当スレで聞いてください。

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

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


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


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

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

769 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 01:37:44 ]
CPUとHDDを速いものに替えることだろうなあ。

770 名前:756 mailto:sage [2008/06/20(金) 02:57:53 ]
>>769
ハード的に改造しないと無理か・・・ orz



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

772 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 12:06:28 ]
make uninstall やってみた?

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

と出るのみです。

774 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 12:36:09 ]
>>771
手動削除でおk。

# make deinstall だったりしない?

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

776 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:40:01 ]
バイナリで良ければMinGW Utilitiesにある

777 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:51:24 ]
>>776
バイナリでいいです

sourceforge.net/project/showfiles.php?group_id=2435
ココの
wget-1.9.1.tar.gz
ですよね?
downloads.sourceforge.net/mingw/wget-1.9.1.tar.gz?modtime=1119444412&big_mirror=1
↑これ・・・・
しかしこれダウンロードしてもソースなんですけど?
しかも./configure make したらエラー・・・・

778 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:17:38 ]
しかしwget くらい MSYS Supplementary Tools
( sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879 )
あたりに入れて欲しいな…
MSYS-1.0.11 あたりで入らないかなー?

780 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:21:00 ]
>>777
> バイナリでいいです 

gnuwin32.sourceforge.net/packages/wget.htm
の Complete package (Setup) が良いかと。



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

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

783 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 22:24:29 ]
>>781
www.mingw.org/MinGWiki/index.php/mingwPORT

>>782
そーです。

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

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

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

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

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

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

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



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

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






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

前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