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を自前で作ればオッケー だと思う。 時分の使い方の場合は問題でなかった。 あ、双方の環境でログイン名が違う場合は、ホームディレクトリをリネームするか 必要な設定ファイル群をコピーしてね。