私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレCygwin + MinGW + GCC 相談室 Part 4
gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ☆
レスフィルター : (試験中)
>>346
> libstdc++はつまり
> 「オープンソースにしてくれるとうれしいけど、
> まあそうじゃなくても良いよ。特に制約は科しません」
この翻訳(意訳)でOK。
> 「GCC(や他のGPLでライセンスされたエディタなど)を使って
> 開発されたソフトウェアには何ら制約はありません。」
ここもこの翻訳(意訳)でOK。
> 「しかしBisonは自身のコードの一部をコピーするのでGPL強制です。」
ここもこの翻訳(意訳)でOK。
> BisonとやらはGCCの一部なのかい?
> だとするとやっぱりGCCを使うと結果的に産物もGPL強制?
現在のGCC(g++しか記憶にないが)はbison使わないんじゃなかったか?
以上まとめると、商用利用も万事OKで全く制約はないと思われ。
> libstdc++はつまり
> 「オープンソースにしてくれるとうれしいけど、
> まあそうじゃなくても良いよ。特に制約は科しません」
この翻訳(意訳)でOK。
> 「GCC(や他のGPLでライセンスされたエディタなど)を使って
> 開発されたソフトウェアには何ら制約はありません。」
ここもこの翻訳(意訳)でOK。
> 「しかしBisonは自身のコードの一部をコピーするのでGPL強制です。」
ここもこの翻訳(意訳)でOK。
> BisonとやらはGCCの一部なのかい?
> だとするとやっぱりGCCを使うと結果的に産物もGPL強制?
現在のGCC(g++しか記憶にないが)はbison使わないんじゃなかったか?
以上まとめると、商用利用も万事OKで全く制約はないと思われ。
>346
元々この FAQ の項は GPL なツールを使ってフリーじゃないプログラムを開発できますか?という項。
で、問題ないというのが最初の段落なんだけど、自身のコードの一部をコピーするものもある、というのが次の段落に説明されていて
その例として Bison (構文解析器を作成する為のツール) が挙げられている。
コピーされたコードについては元々のライセンスが適用されるんだけど、Bison に関して言えば例外が認められていて非フリーの
プログラム作成に使っても問題ない、というのが最後の段落。
仮に GCC が Bison を利用していたとしても影響を受けるのは GCC まで。
結局、いずれにしろ GCC の生成物を非フリーとして利用してもよい。
まとめると GPL なツールを用いて非フリーのプログラムを作成しても基本OKだけど、ソースをコピーするものについては
それぞれ例外条項があるかどうか確認するべし、となる。
元々この FAQ の項は GPL なツールを使ってフリーじゃないプログラムを開発できますか?という項。
で、問題ないというのが最初の段落なんだけど、自身のコードの一部をコピーするものもある、というのが次の段落に説明されていて
その例として Bison (構文解析器を作成する為のツール) が挙げられている。
コピーされたコードについては元々のライセンスが適用されるんだけど、Bison に関して言えば例外が認められていて非フリーの
プログラム作成に使っても問題ない、というのが最後の段落。
仮に GCC が Bison を利用していたとしても影響を受けるのは GCC まで。
結局、いずれにしろ GCC の生成物を非フリーとして利用してもよい。
まとめると GPL なツールを用いて非フリーのプログラムを作成しても基本OKだけど、ソースをコピーするものについては
それぞれ例外条項があるかどうか確認するべし、となる。
C++ code - 28 lines - codepad
http://codepad.org/1sFiMF2t
このコードで
g++ (GCC) 3.4.5 (mingw special)にて
コンパイルオプション -O2 -Wall
としたときに発生する警告について、皆様のお知恵をどうかお貸しください。
C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.
4.5/bits/stl_tree.h: In member function `typename std::_Rb_tree<_Key, _Val, _Key
OfValue, _Compare, _Alloc>::_Link_type std::_Rb_tree<_Key, _Val, _KeyOfValue, _C
ompare, _Alloc>::_M_copy(const std::_Rb_tree_node<_Val>*, std::_Rb_tree_node<_Va
l>*) [with _Key = std::string, _Val = std::pair<const std::string, int>, _KeyOfV
alue = std::_Select1st<std::pair<const std::string, int> >, _Compare = std::less
<std::string>, _Alloc = std::allocator<std::pair<const std::string, int> >]':
C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.
4.5/bits/stl_tree.h:1029: warning: '__top' might be used uninitialized in this f
unction
C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.
4.5/bits/stl_tree.h:365: warning: '__tmp' might be used uninitialized in this fu
nction
というwarningが出てしまいます。
g++ ~~.cpp -O2
でも
g++ ~~.cpp -Wall
でもwarningが出ないのですが
g++ ~~.cpp -O2 -Wall
だとwarningが出てきます。
[C++] MingW warning in one of the stock sources? - GameDev.Net Discussion Forums
http://www.gamedev.net/community/forums/topic.asp?topic_id=523290
ここの人も同じような問題に当たっているようですが、これは何がおかしいのでしょうか?
http://codepad.org/1sFiMF2t
このコードで
g++ (GCC) 3.4.5 (mingw special)にて
コンパイルオプション -O2 -Wall
としたときに発生する警告について、皆様のお知恵をどうかお貸しください。
C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.
4.5/bits/stl_tree.h: In member function `typename std::_Rb_tree<_Key, _Val, _Key
OfValue, _Compare, _Alloc>::_Link_type std::_Rb_tree<_Key, _Val, _KeyOfValue, _C
ompare, _Alloc>::_M_copy(const std::_Rb_tree_node<_Val>*, std::_Rb_tree_node<_Va
l>*) [with _Key = std::string, _Val = std::pair<const std::string, int>, _KeyOfV
alue = std::_Select1st<std::pair<const std::string, int> >, _Compare = std::less
<std::string>, _Alloc = std::allocator<std::pair<const std::string, int> >]':
C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.
4.5/bits/stl_tree.h:1029: warning: '__top' might be used uninitialized in this f
unction
C:/PROGRA~1/mingw/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.
4.5/bits/stl_tree.h:365: warning: '__tmp' might be used uninitialized in this fu
nction
というwarningが出てしまいます。
g++ ~~.cpp -O2
でも
g++ ~~.cpp -Wall
でもwarningが出ないのですが
g++ ~~.cpp -O2 -Wall
だとwarningが出てきます。
[C++] MingW warning in one of the stock sources? - GameDev.Net Discussion Forums
http://www.gamedev.net/community/forums/topic.asp?topic_id=523290
ここの人も同じような問題に当たっているようですが、これは何がおかしいのでしょうか?
>>356
詳しいことは知らんが、その警告は最適化しないと出てこない。
要は、最適化のフェーズで変数を未代入で参照しているようなパスを見出しているのだろう。
手元の3.4.4のソースだと、どちらも関数の戻り値で初期化しているように見えるのだけど、3.4.5で変わったのかもしれない。
尤も、例えば次のようなコードでもその警告は出るので余り心配する必要はないだろう。
--
int main()
{
int foo;
for (int ic = 0; ic < 10; ++ic) {
if (ic) {
++foo;
} else {
foo = 0;
}
}
printf("%d\n", foo);
return 0;
}
詳しいことは知らんが、その警告は最適化しないと出てこない。
要は、最適化のフェーズで変数を未代入で参照しているようなパスを見出しているのだろう。
手元の3.4.4のソースだと、どちらも関数の戻り値で初期化しているように見えるのだけど、3.4.5で変わったのかもしれない。
尤も、例えば次のようなコードでもその警告は出るので余り心配する必要はないだろう。
--
int main()
{
int foo;
for (int ic = 0; ic < 10; ++ic) {
if (ic) {
++foo;
} else {
foo = 0;
}
}
printf("%d\n", foo);
return 0;
}
どうでもいいけど、>357のソースをgcc -std=c99 -O3 -funroll-loops -Wallしたら警告が消えた。
どうやら、O3の最適化とunroll-loopの組み合わせでループを全展開して代入だけにしてしまうらしい。
と思ってアセンブリ出力を見たら只管インクリメントしていて笑えた。
どうやら、O3の最適化とunroll-loopの組み合わせでループを全展開して代入だけにしてしまうらしい。
と思ってアセンブリ出力を見たら只管インクリメントしていて笑えた。
GNU ncursesで日本語表示をするやり方を教えてください。
環境はWindows Vista Businessのcygwinです。
configure --enable-widecの後makeしたncursesを使っています。
コンパイルはgcc test.c -lncurseswです。
"ほげほげ"と表示させたいのですが文字化けしてしまいます。
ただのprintf("ほげほげ");は正常に表示されています。
ソースは以下です。
<ncursesw/ncurses.h>
#include <locale.h>
main(){
setlocale(LC_ALL,"");
initscr();
addstr("ほげほげ");
refresh();
sleep(1);
endwin();
}
google検索してみた結果、ほぼ同じ状況の方を見つけ、
Windows Service for Unix3.5を使うと表示できるようであることはわかったのですが、vista なので困っています。
cygwinで文字化けせずに表示する方法はないでしょうか。
環境はWindows Vista Businessのcygwinです。
configure --enable-widecの後makeしたncursesを使っています。
コンパイルはgcc test.c -lncurseswです。
"ほげほげ"と表示させたいのですが文字化けしてしまいます。
ただのprintf("ほげほげ");は正常に表示されています。
ソースは以下です。
<ncursesw/ncurses.h>
#include <locale.h>
main(){
setlocale(LC_ALL,"");
initscr();
addstr("ほげほげ");
refresh();
sleep(1);
endwin();
}
google検索してみた結果、ほぼ同じ状況の方を見つけ、
Windows Service for Unix3.5を使うと表示できるようであることはわかったのですが、vista なので困っています。
cygwinで文字化けせずに表示する方法はないでしょうか。
>>362
setlocaleはCygwin-1.7なら一応動く。(つか、setlocaleしないとまともに動かず、それはそれで困っているので現在hack中)
ただし、wcwidth/wcswidthも腐ってるので、ncursesw使っても日本語はNGというしょぼーんな結果に。
そのうち何とかするつもりなので気長に待て。
setlocaleはCygwin-1.7なら一応動く。(つか、setlocaleしないとまともに動かず、それはそれで困っているので現在hack中)
ただし、wcwidth/wcswidthも腐ってるので、ncursesw使っても日本語はNGというしょぼーんな結果に。
そのうち何とかするつもりなので気長に待て。
cygwinで日本語表示は厳しそうですね・・・
仮想PCにXPを入れてWindows Service for Unix3.5上で動かしてみたら、
先のサンプルでの”ほげほげ”の表示の確認ができました。
仕方がないので、Windows Service for Unix3.5を使っていこうと思います。
ありがとうございました。
仮想PCにXPを入れてWindows Service for Unix3.5上で動かしてみたら、
先のサンプルでの”ほげほげ”の表示の確認ができました。
仕方がないので、Windows Service for Unix3.5を使っていこうと思います。
ありがとうございました。
>>364
XWindow使えば少しはましだった希ガス。尤も、そこまでしてCygwinにこだわる必要もない黄モス。
XWindow使えば少しはましだった希ガス。尤も、そこまでしてCygwinにこだわる必要もない黄モス。
cygwinのwcwidth/wcswidthが腐ってても--enable-widecつけてビルドすると
libutf8のほうの使うようになるから、おkだった希ガス
あとはsetlocale(LC_ALL, NULL);が常にja_JP.UTF-8を返すようにしたcygwinのdllと
少なくてもUTF-8表示に対応した端末(漏れの場合はck
用意したら表示できたYO
libutf8のほうの使うようになるから、おkだった希ガス
あとはsetlocale(LC_ALL, NULL);が常にja_JP.UTF-8を返すようにしたcygwinのdllと
少なくてもUTF-8表示に対応した端末(漏れの場合はck
用意したら表示できたYO
#include <iostream>
int main()
{
std::cout << "能" << std::endl;
return 0;
}
このコードがg++ 3.4.5 Mingwでコンパイルできません。
どうすれば良いでしょうか?
int main()
{
std::cout << "能" << std::endl;
return 0;
}
このコードがg++ 3.4.5 Mingwでコンパイルできません。
どうすれば良いでしょうか?
>>369逆じゃねーの?
"能\"
でいけました。
ありがとうございました!
でいけました。
ありがとうございました!
gcc --input-charset=cp932 --exec-charset=cp932
文字コードの問題だけじゃなくてインストーラでインストールした場合
iconvがリンクされてないので古いcc1.exeとcc1plus.exeを持ってこい
という話
iconvがリンクされてないので古いcc1.exeとcc1plus.exeを持ってこい
という話
俺もそれでハマったんで
本当にMinGWのインストーラは糞だわ
というか8ビット圏の人間無視してるだろって感じ
本当にMinGWのインストーラは糞だわ
というか8ビット圏の人間無視してるだろって感じ
>>378
これSTLportの最新版(5.2.1)ビルドできる?
これSTLportの最新版(5.2.1)ビルドできる?
ハッシュ検索関係hcreate/hsearch/hdestroy
cygwinにはあってMinGWにはないのな
-mno-cygwinで使いたきゃ自力で実装するしかないっと
cygwinにはあってMinGWにはないのな
-mno-cygwinで使いたきゃ自力で実装するしかないっと
>>382
MinGWを使うってことは,POSIXなAPIを諦めてWin32 APIと生きる覚悟をするってことだ
MinGWを使うってことは,POSIXなAPIを諦めてWin32 APIと生きる覚悟をするってことだ
-- foo.c
extern void g();
void f() { g(); }
--
gcc -shared foo.c -o foo.so
こんな共有ライブラリを作る場合、
シンボルgについて何も知らなくても実行時に解決してくれるはずですが、
cygwinで同じことをやろうとするとfoo.soがビルドできません。
(undefined reference to `_g' とldに言われる)
何か別のオプションが必要なのでしょうか?
extern void g();
void f() { g(); }
--
gcc -shared foo.c -o foo.so
こんな共有ライブラリを作る場合、
シンボルgについて何も知らなくても実行時に解決してくれるはずですが、
cygwinで同じことをやろうとするとfoo.soがビルドできません。
(undefined reference to `_g' とldに言われる)
何か別のオプションが必要なのでしょうか?
>>385
あ、cygwinでは-o foo.dllでやってました。
で、スマソ自己解決
http://www.bookshelf.jp/2ch/unix/1107587275.html
の273以降に話が出てました。
> WindowsのDLLじゃビルド時にシンボル解決をしてやらないといけないんだよね。
> なんかアホらしい仕様。
orz
gcc -shared foo.c -o foo.dll -lowner_of_g
ちゃんと書かなきゃいけないようです。
書けない場合は自分でシンボル解決しなきゃいけないのか
あ、cygwinでは-o foo.dllでやってました。
で、スマソ自己解決
http://www.bookshelf.jp/2ch/unix/1107587275.html
の273以降に話が出てました。
> WindowsのDLLじゃビルド時にシンボル解決をしてやらないといけないんだよね。
> なんかアホらしい仕様。
orz
gcc -shared foo.c -o foo.dll -lowner_of_g
ちゃんと書かなきゃいけないようです。
書けない場合は自分でシンボル解決しなきゃいけないのか
Windows XP SP2です。
g++ source.cpp
というコマンドでコンパイルすると、
コンパイルエラーが大量に出て
上の方が読めなくなってしまいます。
コンパイルエラーは、特に最初の方が大事なわけで
これでは困るのですが、どうしたら全てのエラーメッセージがでるでしょうか?
g++ source.cpp > result.txt
の様にリダイレクトしてみたのですがだめでした。
g++ source.cpp
というコマンドでコンパイルすると、
コンパイルエラーが大量に出て
上の方が読めなくなってしまいます。
コンパイルエラーは、特に最初の方が大事なわけで
これでは困るのですが、どうしたら全てのエラーメッセージがでるでしょうか?
g++ source.cpp > result.txt
の様にリダイレクトしてみたのですがだめでした。
>>390
オイオイ。 標準エラー出力をとらなきゃ駄目だろ。
g++ source.cpp 2> result.txt
っていうかソースコードをある程度のサイズに分割しておけば、
最初の方が流れてしまうほど大量のエラーメッセージにはならないはず。
オイオイ。 標準エラー出力をとらなきゃ駄目だろ。
g++ source.cpp 2> result.txt
っていうかソースコードをある程度のサイズに分割しておけば、
最初の方が流れてしまうほど大量のエラーメッセージにはならないはず。
>>391
2>
で取れるのですか。
初めて知りました。
ありがとうございます。
>ソースコードをある程度のサイズに分割しておけば、
まさにおっしゃる通りです。
・・・が、特定のクラスのデバッグ用途のソースなため
分割の意味があまりなく、またエラーが出る時はソース全てに渡り
むっちゃくちゃ一斉に出るという特徴がありまして。
2>
で取れるのですか。
初めて知りました。
ありがとうございます。
>ソースコードをある程度のサイズに分割しておけば、
まさにおっしゃる通りです。
・・・が、特定のクラスのデバッグ用途のソースなため
分割の意味があまりなく、またエラーが出る時はソース全てに渡り
むっちゃくちゃ一斉に出るという特徴がありまして。
boostのmulti_array.hppに関して質問させてください。
とあるプログラムをコンパイル&インストールしようと思い、cygwinを導入しました。
コンパイル&インストールにはboostの1.34以上が要求されていました。
しかし、cygwinのパッケージに含まれていたboostが1.33である事に気付かず、
そのまま行ってしまい、途中でエラーが出てコンパイルが中断しました。
そこで漸くboostのバージョンが要求を満たしていなかった事に気付き、
cygwinのsetup.exeを立ち上げてboostをアンインストールし、
http://homepage3.nifty.com/kaku-chan/boost/install.htmlを参考に
最新バージョンのboostをインストールしました。
その後、もう一度コンパイル&インストールを試してみたのですが、
途中で、
checking boost/multi_array.hpp usability... no
checking boost/multi_array.hpp presence... no
checking for boost/multi_array.hpp... no
configure: error: "boost/multi_array.hpp is unavailable"
とエラーが表示され、コンパイルが止まってしまいます。
この状態で数時間悩み続けているのですが、どうにも解決の糸口が見つかりません。
これはboostのインストールがうまくいってないという事なのでしょうか?
どうぞよろしくお願いします。
OSはXPのSP2です。
とあるプログラムをコンパイル&インストールしようと思い、cygwinを導入しました。
コンパイル&インストールにはboostの1.34以上が要求されていました。
しかし、cygwinのパッケージに含まれていたboostが1.33である事に気付かず、
そのまま行ってしまい、途中でエラーが出てコンパイルが中断しました。
そこで漸くboostのバージョンが要求を満たしていなかった事に気付き、
cygwinのsetup.exeを立ち上げてboostをアンインストールし、
http://homepage3.nifty.com/kaku-chan/boost/install.htmlを参考に
最新バージョンのboostをインストールしました。
その後、もう一度コンパイル&インストールを試してみたのですが、
途中で、
checking boost/multi_array.hpp usability... no
checking boost/multi_array.hpp presence... no
checking for boost/multi_array.hpp... no
configure: error: "boost/multi_array.hpp is unavailable"
とエラーが表示され、コンパイルが止まってしまいます。
この状態で数時間悩み続けているのですが、どうにも解決の糸口が見つかりません。
これはboostのインストールがうまくいってないという事なのでしょうか?
どうぞよろしくお願いします。
OSはXPのSP2です。
>>394
> これはboostのインストールがうまくいってないという事なのでしょうか?
たぶんそう。
bjam は cygwin のパス変換ルールを知らないかもしれない。
実際にどこにインストールされたか探してみなYo
> これはboostのインストールがうまくいってないという事なのでしょうか?
たぶんそう。
bjam は cygwin のパス変換ルールを知らないかもしれない。
実際にどこにインストールされたか探してみなYo
>>397
帰れ、死ね
帰れ、死ね
概要:
MSYS1.0のrxvt/sh+cmd.exeで、特定の漢字を含む
シェルスクリプトを実行できません。
例:
$ cat test.sh
echo "冒"
$ sh test.sh
test.sh: line 2: unexpected EOF while looking for matching ``'
test.sh: line 3: syntax error: unexpected end of file
test.shはShiftJISで、rxvtの-fnもTerminalに設定しています。
マルチバイト文字を正しく認識していない為だと思われます。
対処法を御存じの方は、よろしくお願いします。
MSYS1.0のrxvt/sh+cmd.exeで、特定の漢字を含む
シェルスクリプトを実行できません。
例:
$ cat test.sh
echo "冒"
$ sh test.sh
test.sh: line 2: unexpected EOF while looking for matching ``'
test.sh: line 3: syntax error: unexpected end of file
test.shはShiftJISで、rxvtの-fnもTerminalに設定しています。
マルチバイト文字を正しく認識していない為だと思われます。
対処法を御存じの方は、よろしくお願いします。
追記:
ちなみに/etc/profileにてexport LANG=ja_JP.SJISとしています。
ちなみに/etc/profileにてexport LANG=ja_JP.SJISとしています。
前へ 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 6 (981) - [97%] - 2012/12/30 23:15
- Cygwin + MinGW + GCC 相談室 Part 5 (981) - [97%] - 2011/4/6 2:32
- Cygwin + MinGW + GCC 相談室 Part 3 (1001) - [97%] - 2008/9/12 0:04 ★
- 【激遅】AppleGCC【絶望】 (111) - [1%] - 2010/1/15 10:31
トップメニューへ / →のくす牧場書庫について