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


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

Cygwin + MinGW + GCC 相談室 Part 6



1 名前:デフォルトの名無しさん [2011/05/06(金) 00:25:16.09 ]
Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。

過去スレ:
Cygwin + MinGW + GCC 相談室 Part 5
hibari.2ch.net/test/read.cgi/tech/1269400706/
Cygwin + MinGW + GCC 相談室 Part 4
pc12.2ch.net/test/read.cgi/tech/1221233882/
cygwin + mingwn + gcc 相談室 Part3
pc11.2ch.net/test/read.cgi/tech/1177944767/
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について part9
pc12.2ch.net/test/read.cgi/tech/1246059290/

449 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 11:15:41.81 ]
>>448
すまん、聞きたいのはライセンス関係の話。
-staticしてlibstdc++とかリンクされると配布NGになったりしない?

450 名前:片山博文MZ ◆0lBZNi.Q7evd [2011/12/12(月) 11:25:24.44 ]
>>449
www.wdic.org/w/TECH/libstdc%2B%2B

451 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 11:25:49.08 ]
で、もしそうならMinGWで必要なDLLはどうやって入手してもらうのがいいのかと。
(素人さんに)

452 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 11:28:05.34 ]
>>450
その類の記述は少しだけみつけたんだけど、staticリンクでまったく全部
リンクされた状態でOKてことでいいの?
.dllを使うための.aだけがセーフってことではなく。


453 名前:デフォルトの名無しさん [2011/12/12(月) 12:34:37.39 ]
gcc.gnu.org/onlinedocs/libstdc++/manual/license.html#manual.intro.status.license.gpl
GPLv3 + GCC RUNTIME LIBRARY EXCEPTION.

454 名前:デフォルトの名無しさん [2011/12/12(月) 12:40:03.74 ]
www.wdic.org/w/TECH/libc%2B%2B

GCC(G++)のライブラリはlibstdc++だが、これはGPLv3であり、GPL離れが加速する中、もはや採用することができない。

GPLv2ライセンスで提供されるものはGCC 4.2.1のlibstdc++までだが、いつまでもこれを採用し続けることも難しいのが現実である。


455 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 12:59:24.63 ]
んー、MinGW/g++で-sharedで確認すると、
 LIBSTDC++-6.DLL
 LIBGCC_S_DW2-1.DLL
の2つに依存してるようなんだけど、どう配布するのがいいのか教えてくれw
(GPLにしたくない、利用者は素人さん)

456 名前:714@C++相談室 part92 mailto:sage [2011/12/12(月) 15:35:18.23 ]
誘導されました。
ttp://hibari.2ch.net/test/read.cgi/tech/1320339482/714
について、MinGWの規則の範囲内でわかれば教えてください。

iconvについても確認してみたところ、
 bin/iconv.dll
 lib/iconv.lib
 lib/iconv_a.lib
となっており、libxmlと似ていました。「_a_dll.lib」はありませんでしたが…。

よろしくお願いします。

457 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 15:39:14.42 ]
何故VC++の話をここに持ってくるんだ



458 名前:片山博文MZ ◆0lBZNi.Q7evd mailto:sage [2011/12/12(月) 15:43:40.84 ]
*_a.libは、staticライブラリ。
tinyxmlの方が小さくて使いやすいかもしれない。

459 名前:デフォルトの名無しさん [2011/12/12(月) 15:59:20.57 ]
Windowsで使うのは骨だと思うけどなあ。
何かをするたびにエンコーディングの変換をするより、読むとき一度だけ
変換した方が効率がいいし、手間も少ないし。
BAD_CASTってあったと思ったけど、ほんとにBAD CASTだからね。
使えると思わないほうがいい。
つかたらいいなって思うのはよくわかるんだけど。

460 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:03:43.46 ]
>>456
libxml2.libはlibxml2.dllのインポートライブラリ
実行時にlibxml2.dllが必要になる

libxml2_a.libはstaticライブラリ
実行時にlibxml2.dllは不要

libxml2_a_dll.libもstaticライブラリ
実行時にlibxml2.dllは不要
libxml2_a.libとの違いはxmlDllMain(ビルド環境の際を吸収するための薄い皮)というものが含まれている
dllを作成するときにはこちらを使うのが望ましい

大したことやらないならrapidxmlがオススメ

461 名前:456 mailto:sage [2011/12/12(月) 16:45:06.56 ]
>>457
すみません。vc++依存の話だとすら知りませんでした。

>>459
他に使えるライブラリを探すことに疲れてしまいました。

>>458 >>460
rapidxmlは確かに使いやすかったです。tinyxmlは記憶があるので調べたか試したと思います。
どうしても、属性の値をxpathで取得する必要があって、最初に使えるようになったのがlibxmlでした。
現在は、dllを使って動いているのですが、静的リンクにしたくて調べていました。

こちらについても方法をご存知であれば教えていただきたいです。
調査に疲れてlibxmlをつかうことにしたときと同じように挫折しそうです。

462 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:27:10.13 ]
>>461
xpathかぁ
それならpugixmlがオススメ

463 名前:456=461 mailto:sage [2011/12/12(月) 18:57:05.07 ]
>dllを作成するときにはこちらを使うのが望ましい
ありがとうございます。
こちらも静的リンクだったとは…。
差分をとってみるとかなり似ていたので、最適化が面倒だったのかな?
と見当違いな妄想をしていました。
逆に、「_a.lib」が必要になる場合ってどのような場合なのでしょう?

>>462
「pugixml」しらべてみます。

なるべく、実行ファイルのみでアプリの形にしたいので、静的リンクを使いたいのですが、
「_a」付きの「iconv_a.lib」「libxml2_a.lib」を使うにはどうすればいいのでしょうか?
リンクするライブラリを「libxml2_a.lib」→「libxml2_a.lib」と変えてみて動かなかったのは、>>456に書いたとおりです。
と書き込もうと思って、もう一度ビルドして出力を眺めていると、
「MSVCRT.lib」と「LIBCMTD.lib」とが競合している、とのこと。D…?→ぐぐる。
リリースとデバッグが混じってる?いいのか?→Releaseビルド→正常終了
(  Д ) ゚ ゚ 
「pugixml」の後に調べてみます。

464 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 18:57:49.45 ]
×リンクするライブラリを「libxml2_a.lib」→「libxml2_a.lib」
○リンクするライブラリを「libxml2.lib」→「libxml2_a.lib」

465 名前:463=464 mailto:sage [2011/12/12(月) 19:02:37.52 ]
あ、うそでした、スレ汚し申し訳ありません。
リリースビルドのリンクが「libxml2.lib」になっていただけでした。

466 名前:デフォルトの名無しさん [2011/12/12(月) 19:07:25.38 ]
だけだったね

467 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 19:11:14.38 ]
いつまでVC++限定の話続けてるんだよ



468 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 19:35:19.90 ]
↑の話ってVC++の話なの?

Eclipseでc++書いてるのだけど、boostを落としてきてビルドして使う際に、
〜.a
〜.dll.a
ってのを
〜.lib
〜.dll.lib
にしないとならないのって何で?
気にしたこともなかった。

469 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 19:43:33.73 ]
> visual c++でXMLを使いたかったため、windows用のlibxmlというライブラリを落として

470 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 19:53:40.13 ]
VC++でも
#pragma comment(lib, "〜.a")とかつけとけば実行は出来るんじゃあねーかな

ていうか質問者の人は\win32フォルダ配下のMakefile.msvcを使ったのだろうか?使ってないに100ペリカ

471 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 19:56:57.99 ]
あー、わかった。msvc用のライブラリのバイナリじゃなくて、他のコンパイラでビルドしたバイナリを使ってんだな
そりゃー動かねーわ

472 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 20:01:54.62 ]
ハズレ

473 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 20:14:27.02 ]
てかよく見たらもう質問終わってたのね

474 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 20:18:37.13 ]
そんなことより>>455教えてくれよー
static linkして配布すると問題?

475 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 21:01:15.37 ]
馬鹿には無理

476 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 21:23:40.68 ]
>>455
答えがあるとは限らないけど、

Licensing Terms | MinGW
www.mingw.org/license

MinGW-users - Conflicting libstdc++-6.dll requirements, and licensing
mingw-users.1079350.n2.nabble.com/Conflicting-libstdc-6-dll-requirements-and-licensing-td6160814.html

477 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 21:40:58.70 ]
>>475
そんな、自己紹介しなくとも。



478 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 22:03:54.93 ]
>>455
libstdc++とlibgccにはGCCのランタイムライブラリに関する例外規定が適用される。
www.gnu.org/licenses/gcc-exception.html
www.gnu.org/licenses/gcc-exception-3.1-faq.html

でも英語だからよくわかんね。

479 名前:デフォルトの名無しさん [2011/12/13(火) 06:57:24.94 ]
英語でもよくわからないよ。
一応、ヘッダーのリンクオーケー、商用オーケーって書いてはあるんだけど、
何がオーケーなんだかいまいち説明がはっきりしない。
これ書いた本人もまだ決めてないんじゃないの?
細かい部分は、訴訟起こす時に決めますみたいな。

480 名前:デフォルトの名無しさん [2011/12/13(火) 10:57:37.41 ]
dllwrap について教えてください。

windows7 64bit環境で使用したいのですが、ヘルプを見ると
--target に指定できるのは、i386-cygwin or i386-mingw32
しかないようなのですが、64bitの場合でも i386-mingw32
とすれば問題ないのでしょうか?
 それとも 64bit用の dllwrapがどこかにあるのでしょうか?

OS : windows7 64bit
MinGW :mingw-w64-bin_x86_64-mingw_20101002_4.5_sezero.zip
MSYS :MSYS-1.0.11.exe

481 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 11:08:12.33 ]
>>480
projectzero-swb.blogspot.com/2009/08/windows-7-x64mingw-x64.html

482 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 19:33:11.78 ]
testes

483 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 14:25:34.43 ]
>何がオーケー
コードの配布以外何がある?

484 名前:デフォルトの名無しさん [2011/12/14(水) 15:28:23.77 ]
>>483
うん

485 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 05:00:32.59 ]
MinGW32でextern "C"で定義してある構造体を返す関数が
gendefでdefを作ると@4と関数のあとについていて(他の関数には付いていない)
それからlibを作るとその関数だけVC++からリンクできないのですが
なにかありますか


486 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 08:26:23.55 ]
struct の値返しは mingw と msvc で互換性がない。

487 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 14:23:52.12 ]
>>485
//test.h
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
struct Data{ int a,b; };
struct Data getData();
#ifdef __cplusplus
}
#endif

//test.cpp
#include "test.h"
struct Data getData() {
struct Data d = {123, 456};
return d;
}

//use.cpp
#include <stdio.h>
#include "test.h"
int main() {
struct Data d = getData();
printf("d.a=%d d.b=%d\n", d.a, d.b);
return 0;
}



488 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 14:26:26.14 ]
gcc -shared -o test.dll test.cpp
gcc -o usegcc.exe use.cpp -L. -ltest
gendef test.dll
lib /def:test.def /machine:x86 /out:test.lib
cl /Fe"usevc.exe" use.cpp test.lib
usegcc.exe
usevc.exe

うちの環境では問題ないなぁ

489 名前:485 mailto:sage [2011/12/15(木) 15:35:19.51 ]
>>488
こうするとダメでした。
$ cat test.h
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
typedef struct { float v[4]; } data_t;
data_t getData(int a, int b, int c);
#ifdef __cplusplus
}
#endif
$ cat test.cpp
#include "test.h"
data_t getData(int a, int b, int c) {
data_t d;
d.v[0] = (float)a;
d.v[1] = (float)b;
d.v[2] = (float)c;
d.v[3] = (float)0;
return d;
}
$ cat use.cpp
#include <stdio.h>
#include "test.h"
int main() {
data_t d = getData(1, 2, 3);
printf("d.a=%f d.b=%f\n", d.v[0], d.v[1]);
return 0;
}


490 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 16:11:55.94 ]
>>489
gcc -shared -o test.dll test.cpp -Wl,--output-def,test1.def
gcc -o usegcc.exe use.cpp -L. -ltest
lib /def:test.def /machine:x86 /out:test.lib
cl /Fe"usevc.exe" use.cpp test.lib

gcc -shared -o test.dll test.cpp
gcc -o usegcc.exe use.cpp -L. -ltest
impdef test.def test.dll
lib /def:test.def /machine:x86 /out:test.lib
cl /Fe"usevc.exe" use.cpp test.lib
ならいけるのでgendefの問題かもね

491 名前:デフォルトの名無しさん [2011/12/16(金) 22:18:26.50 ]
かもね

492 名前:デフォルトの名無しさん [2011/12/18(日) 23:15:42.83 ]
だね

493 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 20:11:37.95 ]
/mingw32/bin/ld.exe: cannot find -lstdc++
このエラーはどうやったら直りますか?

494 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 21:47:09.64 ]
g++じゃなくてgcc使ってないか?

495 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 09:03:27.32 ]
うん

496 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 10:12:02.61 ]


497 名前:デフォルトの名無しさん [2012/01/05(木) 19:31:41.76 ]
ふう



498 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:31:23.43 ]
うんこしたいんですけど。便所どこですか

499 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:04:42.88 ]
cygwin 1.7.xってDOSモード無いの?

500 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:18:47.05 ]
DOSモード?

501 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:44:11.08 ]
>>500
よく見たら、書いてありました。すいません。
toro.2ch.net/test/read.cgi/unix/1268282846/14


502 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 10:41:28.34 ]
MinGW側でmallocしたポインタをVC++側でfreeしたり
FILE*を受け渡したりできるんでしょうか?
できないと思うんだけど、msvcrtを使っているというのはできるという意味でしょうか?


503 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 11:14:22.99 ]
ためだろ
解放用の関数なり自作スマポなりで対応しろ
クラスならコンストラクタデストラクタをprivateにしてstaticメソッドかfriendしてる関数からしか生成、破棄できないようにするのもあり


504 名前:502 mailto:sage [2012/02/01(水) 11:27:47.34 ]
どうもmsvcrtでも71や80など違いがあるらしく、そのあたりの問題らしい。
mallocしたポインタを返すからそっちでfreeしろって設計のライブラリを撲滅したい。


505 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 11:29:19.63 ]
>>503
mingwfreeというmingw側の関数でfreeするだけの関数が入ったDLLを作って対応していたんだけど
本当にこれ必要なのかなって疑問でした。


506 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 11:41:07.39 ]
>>502
例えばMinGWのgccでコンパイルしたobjをMSVCのclでコンパイルしたobjにリンク
した場合は、可能だよ
(ただし、コンパイラサポート用の特殊なobjやlibを別途リンクする必要が
しばしば生じるし、C++の場合は両者のABIにそもそも互換性がないのでダメだ)

そうではなくて、MinGWで作ったDLLをMSVCで作ったexeから利用するシナリオを
考えているのなら、ダメ

MSVCに閉じた世界であっても、msvcrt.dll, msvcr70.dll, .... msvcr100.dllや
そのデバグ変種はすべて互換性がなく、exeとDLLが同じランタイムDLLを
利用しているのでない限り、そういうことは出来ない(それぞれ別のCランタイムを
ロードしてメモリに保持する形になる)
今のMSVCはデフォではmsvcrt.dllとリンクするようになっていないので
自動的にダメということになるよ

507 名前:506 mailto:sage [2012/02/01(水) 11:43:03.46 ]
ちなみにC++が不要なら、MSVCでmsvcrt.dllとリンクするようにすることは一応可能
WDKを入れて、そちらのincludeとlibを使うといい
ただ色々落とし穴もあるし、事実上(少なくともモダンな)C++は使えない
ネットで検索すると色々情報が得られるはず



508 名前:502 mailto:sage [2012/02/01(水) 12:13:51.23 ]
>>506
objも互換性があるのか。
DLLにしないとVC++側から使えないと思っていました。
ちなみにC++は不要でCだけでいいです。
>>507
逆にMinGW側でmsvcrt80などにリンクするようにビルドすることもできるらしいのですが
MSVC側のCRTのバージョンが上がっていきそうなので、
mallocしたポインタを返してこっちでfreeすることを要求してくるMinGW側のライブラリ(DLL)があって
僕が作っているわけではないオープンソースのライブラリなのでできればコードには触りたくないけど
MSVCから使いたい場合は、
MinGWのDLLをビルドしたのと同じバージョンのfreeを単体のDLLにしてその関数でfreeするのがいい方法でしょうか。


509 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 13:17:19.87 ]
たぶんそれで大丈夫だけど、試したことはないな

そのオープンソースのライブラリが一応Windowsをサポートしているんなら
DLL boundaryを超えた場合の問題について開発者に説明して
libfoo_free()のような関数を入れてもらうのが本来は望ましいんじゃないの

objは互換性あるよ、少なくとも32bitでは
gccもwin32ターゲットの場合はCOFFを吐くし、fopenやmallocみたいな関数への
参照はどっちでコンパイルしたとしても最終的にリンク時に解決されるので
そのタイミングでリンクされるCランタイムが使われることになるわけだ

x64だとどうだったかな……x64のABIは確か結構ややこしいことになってるんだよな

510 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 16:32:47.61 ]
>>509
今そうしているので動いてはいるんだけど
もっと普通の方法がないのかなと思ったのです。
どうもです。


511 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 16:49:08.70 ]
LoadLibraryしてGetProcAddress(msvcrtdll, "free")では?

512 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:37:53.09 ]
msvcrt.dllが(mingwによって)間接的にプロセスのメモリ空間にマップされているなら
LoadLibrary()の代わりにGetModuleHandle()でもいいね

513 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:54:09.97 ]
>>511
そっちのほうが簡単ですね
MinGWがmsvcrt.dllを使っているというのは期待してていいんでしょうか


514 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:56:55.89 ]
DLLが使っているfreeのアドレスをなんらか判定して取れれば一番いい気がしますけど


515 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:58:28.73 ]
この手の解決策はハックなので、ライブラリの実装を直してもらえるなら
直してもらったほうがいいのは間違いないわな
ライブラリがリソース解放用の関数を提供していれば、それがMinGWでビルド
されていようが、MSVCでビルドされていようが、問題ないわけで

516 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:59:49.32 ]
>>514
そのDLLのインポートセクションを見れば一応わかるはず
APIフックなどでは使われる手法だけど、ハックだな

517 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:02:10.74 ]
msvcrt.dll使ってるとは限らないしなぁ



518 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:39:45.66 ]
個別に直してもらえれば一番いいのはそうですけど
いろいろあるのと今後もまたあるかもしれないので
相手の対応に依存せず自分側だけで対応できる汎用的な方法も持っておきたいというのがあるんですよね。
FILE*の受け渡しなんかはインターフェースの定義だから多分変えてもらえないので
同じバージョンのfopenが使いたいとかもあるし。

DLLと関数を指定して、それがインポートされているDLL名を取得して>>511ってのを試そうと思います。

519 名前:デフォルトの名無しさん mailto:sage [2012/02/07(火) 01:56:10.50 ]
bugs.ruby-lang.org/issues/3296
これとかまさに>>516なコードだよな

iconvとかどこでも使われてるのに、エラー通知がerrnoなために
DLL-safeでないってのが終わってる
POSIXだから今更インタフェース変えられるわけもねーし

520 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 00:42:21.69 ]
この手の問題ってメモリの処理はどうなってんだろ?
一つのプログラムが二つ以上の標準ライブラリとリンクしてしまった場合ヒープは適切に管理されるのかな

521 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:32:29.29 ]
少なくとも今のCRTだとmalloc()は大して自分じゃ仕事してねーというか
HeapAlloc()に丸投げなので、CRTのバージョンが違ってもOSの側が
矛盾のないように仕事をしてくれるはず
ただし、それぞれがHeapCreate()で自分専用のプールみたいなもんをこしらえて、
そっからHeapAlloc()していく

OSの同じAPIに仕事させてる以上、それらは衝突はしないんだけれども
プールAから確保したメモリをプールBのものとして開放することはもちろんできない
HeapFree()の関数インタフェース見ればわかると思うけど

malloc()やfree()という関数インタフェースからはプールが見えないんだけど裏では
それぞれ専用のプールが使われるわけで、そこが要注意なわけだ

522 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:58:28.91 ]
なるほど。低レベルではHeapAllocを使っているならきっと拡張可能で作っていると思うんだが
2つヒープができてしまった場合効率的に使えるのかな?変に制限されるんじゃないかと思ったので

523 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 03:45:52.29 ]
標準ライブラリの数だけallocatorがあれば
ひとつより効率的ではないだろけど、まあそう気にするほどでもないのでは。
C++でもdeleteやdelete[]があって違うんじゃない。


524 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 12:21:53.07 ]
mingwのgprofはlinuxのとくらべて制限とかありますか?

525 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 12:36:18.05 ]
ありがとうございます。
あるとわかってよかったです。

526 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 23:42:58.64 ]
gprofって、凄いの?

527 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 12:49:16.99 ]
gcc -pg で作って実行したらgmon.outができたけどgprof test.exe gmon.outとかやってもヘッダみたいなのしか出ない。なにか間違ってるのか?



528 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 13:35:45.56 ]
ttp://blog.majide.com/2009/03/usage-of-gprof/
ttp://d.hatena.ne.jp/ousttrue/20091017/1255754733

529 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 15:29:10.20 ]
tdm64-gcc-4.6.1をインストールして
gcc -o a.exe a.cpp
ってやると
undefined reference to 'operator new(unsigned long long)'
みたいなエラーがでるので解決策教えてください。
ソースは
int main(){
new int *a=new a;
}
です。

530 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 15:48:02.62 ]
訂正
ソースは
int main(){
int *a = new int;
です。

531 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 16:00:03.50 ]
g++

532 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 16:06:36.96 ]
gccをg++に変えればできるんですか?

533 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 16:10:54.70 ]
すみません、よろしくお願がいします。
これはみんながなる症状なんでしょうか?
本当に困ってます。お願いします。

534 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 16:46:04.85 ]
>>532
何故それを試さん

535 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 16:53:19.78 ]
すみません、インストールしたパソコンではないので
今すぐ出来ません。
許してください。

536 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 17:04:55.28 ]
じゃあ、試してから結果を報告してください
それまでお待ちしています

537 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 17:34:33.60 ]
はい、また何日か後くらいにきます。
そのときはよろしくお願いします。



538 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 17:51:57.66 ]
いま別のパソコンで試したけど同じ症状でした。
しかしg++にしたらちゃんとコンパイルとリンクできました。
有難うございます。
これは何が原因なんですか?
とても気になるのでおしえてください。

539 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 18:43:21.54 ]
え、今時の学生は基本的なことも知らないでやるの?

540 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 18:46:25.61 ]
もしかしてgccはgnu c コンパイラーの略ってことですか?
gnuコンパイラーコレクションの略で好きな言語をコンパイル出来る
フロントエンドだと勝手に勘違いしてました。
大事なことをおしえてくれて有難うございます。

541 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 20:19:11.22 ]
>>540
コンパイルは出来るよ。
言語ごとのライブラリを勝手にリンクしないだけ

542 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 20:33:57.27 ]
-v 見ると楽しいよな

543 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 01:38:57.98 ]
なんでもはコンパイルできないわよ。知ってる言語だけ。

544 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 16:22:39.59 ]
じゃあ539の勘違いということでFAですね。

545 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 16:53:58.45 ]
エラー: ‘new’ が宣言されていません (この関数内での最初の使用)

546 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 13:25:24.33 ]
mingw-get-instはインターネット回線に繋がってないパソコンではつかえないですよね?

547 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 14:07:28.95 ]
つかえないです



548 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 08:48:41.26 ]
ありがとうございます。
msysを手動でインストールする方法とか知ってますか?
知らないなら自分で考えます。

549 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 10:14:42.41 ]
インストール出来る環境でインストールしたら、それを全部アーカイブしてよそへ持ってく。
例えばC:\MinGWにインストールしたらそのディレクトリごと。
コンソールへのショートカットはC:\MinGW\msys\1.0\msys.batを自前で作ればオッケー
だと思う。
時分の使い方の場合は問題でなかった。

あ、双方の環境でログイン名が違う場合は、ホームディレクトリをリネームするか
必要な設定ファイル群をコピーしてね。







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

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

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