元スレCygwin + MinGW + GCC 相談室 Part 3
gcc覧 / PC版 /みんなの評価 : ★
651 = :
>650
必要なパッケージが足りてない。
-mno-cygwin が使いたい場合、gcc-core だけじゃなくて gcc-mingw-core も必要。
652 = :
都合でMinGWを使いたいんだけど、Cygwin導入済みのWindowsに入れたら競合が起こるかな
CygwinパッケージにもMinGWがあった気がするけど、両方とも干渉せずスタンドアロンで使いたいっす
654 = :
>>651
解決しました
ありがとうございました
655 = :
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によるリンクを成功させるにはどのようにすればよいでしょうか?
657 = :
i686-elfがターゲットなbinutilsを作ったのですがgccにこれを使うよう指示する方法が分かりません
http://iwatam-server.dyndns.org/hardware/h8comm/doc/CrossDevel-jp.html/ch-inst.htmlとかを見ると
オレオレbinutilsを使いたい場合gccも作らなくてはならない感じなのですがどうにかする方法はないでしょうか?
658 = :
>>657
gccにはそういうオプションなどなかったと思うけど、
gcc -S でアセンブリソースを出して、
オレオレas でオブジェクトを作って、
オレオレld でリンクすればいいだけ。
661 = :
乱数スレで質問すれば誰か詳しい人がいるかもしれないよ
662 = :
>>661
そうですか。
ただマルチになると申し訳ないので、2~3日寝かしてレス付かないようなら移動しますね。
663 = :
>>657
-B prefix と -b target ジャマイカ?
664 = :
>>660
もうすっかり忘れたけどrand()は線型合同法かなんかだっけ?
メルセンヌツイスタを見つけたならひと口に乱数と言っても
目的によって適不適があるというような注意書きを
メルセンヌツイスタの作者が書いてるのに行き当たったり
しているはずだが。
665 = :
>>662
取り下げによる移動はマルチではない。
移動の方法としてはいくつか在るがたとえば
ここに、「~~(移動先URL)へ移動しました」などと書いたうえで
移動先に「~~(ここのURLとレス番)から誘導を頂きました」
とでも書いておけばその時点でマルチではなくなる。
666 = :
乱数スレの住人ってバカばっかりだからなぁ
669 = :
>>660
/dev/random
/dev/urandom
のこと? だったら、参考資料としてはこの辺とか。
http://www.linux.or.jp/JM/html/LDP_man-pages/man4/random.4.html
とりあえずCygwinなら使えるが、Linux等と同じ動作をしてるわけでは
ないと思われるため、品質や速度については不明。MinGWは知らん。
/dev/rand はぐぐってみると結構ヒットするけど、実在するの?
670 = :
作ればできるよ。ああできるよ。何だってできるよ、作れば。
671 = :
>>669
作ればあります。
672 = :
作らんでもエイリアス張るだけちゃうん
674 = :
すいません、MinGWにUTF-8を認識させるようにしたいのですが、そこらへん設定するにはどうすればよいでしょうか??
どなたか教えて頂けると幸いです。
676 = :
レスありがとうございます。
>> gccのオプション指定で入力エンコードと出力エンコードを指定するって話なら判るんだけど。
分かりにくくてすいません、そんな感じのことを言いたかったのでした。
コンパイル時のオプションで設定できたんですか。
調べたら
--input-charset, --exec-charset
など、出てきました。
ありがとうございましたm(_ _)m
677 = :
不完全な質問にヒント程度のエスパー回答、そして解決報告
素晴らしい流れに心が洗われるようだ
680 = :
おまいらソースを嫁
http://cygwin.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/fhandler_random.cc?rev=1.36&content-type=text/x-cvsweb-markup&cvsroot=src
http://msdn.microsoft.com/en-us/library/aa379942(VS.85).aspx
各種外乱使った暗号論的擬似乱数っぽい
暗号論的に優秀なのとMCやなんかで優秀なのは違ったと思うんで
用途によるはずだがそのあたりは詳しく知らない
681 = :
MinGWでのコンパイルってこの方法であってますよね?
コマンドプロンプトで、chdir ソースファイルが保存してあるディレクトリまでの絶対パスまたは相対パス
そしたら
ソースファイルが保存してあるディレクトリまでのパス>gcc ソースファイル.C -o ソースファイル.exe
これでコンパイルしてもエラーでるからコンパイルの方法が悪いのかなって思ったんだけどさ
ソースファイルは本通りに入力したはずだからあってるはず。
もうプログラミング挫折しそうです。
683 = :
すいません
>>681の通りに入力して
gcc: installation problem, cannot exec `cc1plus': No such file or directory
と表示されます。
684 = :
目的がプログラミングの学習で、
英語が全く分からない&英語を勉強する気はない
なら VC++ 使った方がいい。
685 = :
そりゃめげるわな
http://zieaon.co.uk/MinGW-cc1plus.html
PATH通せ
687 = :
使えるよ
でもスレ違い
689 = :
華麗にスルーされた俺カワイソス
692 = :
その前に日本語
693 = :
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 = :
これを以下のようにコンパイルしました
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 = :
>>694
main()に入る前にmalloc()が呼ばれることもあるので、そういうハリボ
テ実装ではダメ。
696 = :
>>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 = :
gcc -c -o testmalloc.o malloc.c
gcc -o main.exe main.c testmalloc.o
./main.exe
ここで、save_mallocと出るよりも前に
mallocと表示され、そこで前回と同じ症状となりました。
何かよい方法はないでしょうか?
698 = :
Cygwinだよね?
ソ ー ス 嫁
そうすれば malloc などの置き換えのために何をすればいいかわかってくる。
ただ、今回は malloc の書き直しが目標なのではないだろう?
ヘッダ・ソースから内部構造体を調べて、ヒープヲークする程度で充分なんでは?
> ここで、save_mallocと出るよりも前に
> mallocと表示され、そこで前回と同じ症状となりました。
オリジナルの malloc を"セーブ"することには意味がないよ。
むしろ malloc_org が初期化されていない場面があるってことだから
DLLから都度ポインタ得ても同じこと。
そして、DLL内部で完結している malloc を、この方法で
置き換えることは困難(つーか不可能)だ。
(たとえば strdup の内部 malloc 呼び出しをこの方法で乗っ取れるか
どうか実験してみるといい)
699 = :
動作確認してないけど、こんなのどう?
---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 = :
既にCygwin環境があるWindowsで、「他者のCygwin環境でWindowsに移植されたソフトウェア」を実行しようとすると
cygwin1.dllのバージョンの差異でエラー(fatal error - system shared memory version mismatch detected)が発生します。
既にCygwin環境があるWindowsで、それぞれが独立した形(スタンドアロン)として実行する最善の方法をご教授ください。
みんなの評価 : ★
類似してるかもしれないスレッド
- Cygwin + MinGW + GCC 相談室 Part 8 (938) - [97%] - 2022/10/28 8:00
- Cygwin + MinGW + GCC 相談室 Part 7 (996) - [97%] - 2014/9/21 2:15
- Cygwin + MinGW + GCC 相談室 Part 6 (981) - [97%] - 2012/12/30 23:15
- Cygwin + MinGW + GCC 相談室 Part 5 (981) - [97%] - 2011/4/6 2:32
- Cygwin + MinGW + GCC 相談室 Part 4 (1001) - [97%] - 2010/3/23 18:31 ☆
- 【激遅】AppleGCC【絶望】 (111) - [1%] - 2010/1/15 10:31
トップメニューへ / →のくす牧場書庫について