私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレCygwin + MinGW + GCC 相談室 Part 6
gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
で、もしそうならMinGWで必要なDLLはどうやって入手してもらうのがいいのかと。
(素人さんに)
(素人さんに)
http://gcc.gnu.org/onlinedocs/libstdc++/manual/license.html#manual.intro.status.license.gpl
GPLv3 + GCC RUNTIME LIBRARY EXCEPTION.
GPLv3 + GCC RUNTIME LIBRARY EXCEPTION.
http://www.wdic.org/w/TECH/libc%2B%2B
GCC(G++)のライブラリはlibstdc++だが、これはGPLv3であり、GPL離れが加速する中、もはや採用することができない。
GPLv2ライセンスで提供されるものはGCC 4.2.1のlibstdc++までだが、いつまでもこれを採用し続けることも難しいのが現実である。
GCC(G++)のライブラリはlibstdc++だが、これはGPLv3であり、GPL離れが加速する中、もはや採用することができない。
GPLv2ライセンスで提供されるものはGCC 4.2.1のlibstdc++までだが、いつまでもこれを採用し続けることも難しいのが現実である。
んー、MinGW/g++で-sharedで確認すると、
LIBSTDC++-6.DLL
LIBGCC_S_DW2-1.DLL
の2つに依存してるようなんだけど、どう配布するのがいいのか教えてくれw
(GPLにしたくない、利用者は素人さん)
LIBSTDC++-6.DLL
LIBGCC_S_DW2-1.DLL
の2つに依存してるようなんだけど、どう配布するのがいいのか教えてくれw
(GPLにしたくない、利用者は素人さん)
誘導されました。
http://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」はありませんでしたが…。
よろしくお願いします。
http://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」はありませんでしたが…。
よろしくお願いします。
*_a.libは、staticライブラリ。
tinyxmlの方が小さくて使いやすいかもしれない。
tinyxmlの方が小さくて使いやすいかもしれない。
Windowsで使うのは骨だと思うけどなあ。
何かをするたびにエンコーディングの変換をするより、読むとき一度だけ
変換した方が効率がいいし、手間も少ないし。
BAD_CASTってあったと思ったけど、ほんとにBAD CASTだからね。
使えると思わないほうがいい。
つかたらいいなって思うのはよくわかるんだけど。
何かをするたびにエンコーディングの変換をするより、読むとき一度だけ
変換した方が効率がいいし、手間も少ないし。
BAD_CASTってあったと思ったけど、ほんとにBAD CASTだからね。
使えると思わないほうがいい。
つかたらいいなって思うのはよくわかるんだけど。
>>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がオススメ
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がオススメ
>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」の後に調べてみます。
ありがとうございます。
こちらも静的リンクだったとは…。
差分をとってみるとかなり似ていたので、最適化が面倒だったのかな?
と見当違いな妄想をしていました。
逆に、「_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」の後に調べてみます。
×リンクするライブラリを「libxml2_a.lib」→「libxml2_a.lib」
○リンクするライブラリを「libxml2.lib」→「libxml2_a.lib」
○リンクするライブラリを「libxml2.lib」→「libxml2_a.lib」
あ、うそでした、スレ汚し申し訳ありません。
リリースビルドのリンクが「libxml2.lib」になっていただけでした。
リリースビルドのリンクが「libxml2.lib」になっていただけでした。
↑の話ってVC++の話なの?
Eclipseでc++書いてるのだけど、boostを落としてきてビルドして使う際に、
~.a
~.dll.a
ってのを
~.lib
~.dll.lib
にしないとならないのって何で?
気にしたこともなかった。
Eclipseでc++書いてるのだけど、boostを落としてきてビルドして使う際に、
~.a
~.dll.a
ってのを
~.lib
~.dll.lib
にしないとならないのって何で?
気にしたこともなかった。
> visual c++でXMLを使いたかったため、windows用のlibxmlというライブラリを落として
VC++でも
#pragma comment(lib, "~.a")とかつけとけば実行は出来るんじゃあねーかな
ていうか質問者の人は\win32フォルダ配下のMakefile.msvcを使ったのだろうか?使ってないに100ペリカ
#pragma comment(lib, "~.a")とかつけとけば実行は出来るんじゃあねーかな
ていうか質問者の人は\win32フォルダ配下のMakefile.msvcを使ったのだろうか?使ってないに100ペリカ
あー、わかった。msvc用のライブラリのバイナリじゃなくて、他のコンパイラでビルドしたバイナリを使ってんだな
そりゃー動かねーわ
そりゃー動かねーわ
そんなことより>>455教えてくれよー
static linkして配布すると問題?
static linkして配布すると問題?
>>455
答えがあるとは限らないけど、
Licensing Terms | MinGW
http://www.mingw.org/license
MinGW-users - Conflicting libstdc++-6.dll requirements, and licensing
http://mingw-users.1079350.n2.nabble.com/Conflicting-libstdc-6-dll-requirements-and-licensing-td6160814.html
答えがあるとは限らないけど、
Licensing Terms | MinGW
http://www.mingw.org/license
MinGW-users - Conflicting libstdc++-6.dll requirements, and licensing
http://mingw-users.1079350.n2.nabble.com/Conflicting-libstdc-6-dll-requirements-and-licensing-td6160814.html
>>475
そんな、自己紹介しなくとも。
そんな、自己紹介しなくとも。
>>455
libstdc++とlibgccにはGCCのランタイムライブラリに関する例外規定が適用される。
http://www.gnu.org/licenses/gcc-exception.html
http://www.gnu.org/licenses/gcc-exception-3.1-faq.html
でも英語だからよくわかんね。
libstdc++とlibgccにはGCCのランタイムライブラリに関する例外規定が適用される。
http://www.gnu.org/licenses/gcc-exception.html
http://www.gnu.org/licenses/gcc-exception-3.1-faq.html
でも英語だからよくわかんね。
英語でもよくわからないよ。
一応、ヘッダーのリンクオーケー、商用オーケーって書いてはあるんだけど、
何がオーケーなんだかいまいち説明がはっきりしない。
これ書いた本人もまだ決めてないんじゃないの?
細かい部分は、訴訟起こす時に決めますみたいな。
一応、ヘッダーのリンクオーケー、商用オーケーって書いてはあるんだけど、
何がオーケーなんだかいまいち説明がはっきりしない。
これ書いた本人もまだ決めてないんじゃないの?
細かい部分は、訴訟起こす時に決めますみたいな。
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
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
>>483
うん
うん
MinGW32でextern "C"で定義してある構造体を返す関数が
gendefでdefを作ると@4と関数のあとについていて(他の関数には付いていない)
それからlibを作るとその関数だけVC++からリンクできないのですが
なにかありますか
gendefでdefを作ると@4と関数のあとについていて(他の関数には付いていない)
それからlibを作るとその関数だけVC++からリンクできないのですが
なにかありますか
>>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;
}
//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;
}
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
うちの環境では問題ないなぁ
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
うちの環境では問題ないなぁ
>>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;
}
こうするとダメでした。
$ 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;
}
>>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の問題かもね
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の問題かもね
/mingw32/bin/ld.exe: cannot find -lstdc++
このエラーはどうやったら直りますか?
このエラーはどうやったら直りますか?
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- 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 5 (981) - [97%] - 2011/4/6 2:32
- Cygwin + MinGW + GCC 相談室 Part 4 (1001) - [97%] - 2010/3/23 18:31 ☆
- Cygwin + MinGW + GCC 相談室 Part 3 (1001) - [97%] - 2008/9/12 0:04 ★
- 【激遅】AppleGCC【絶望】 (111) - [1%] - 2010/1/15 10:31
トップメニューへ / →のくす牧場書庫について