元スレCygwin + MinGW + GCC 相談室 Part 4
gcc覧 / PC版 /みんなの評価 : ☆
351 = :
>>350
自分で書いたことも読めないのか。
とりあえずまず自分で読んだらどうだ。
352 = :
>>346
> libstdc++はつまり
> 「オープンソースにしてくれるとうれしいけど、
> まあそうじゃなくても良いよ。特に制約は科しません」
この翻訳(意訳)でOK。
> 「GCC(や他のGPLでライセンスされたエディタなど)を使って
> 開発されたソフトウェアには何ら制約はありません。」
ここもこの翻訳(意訳)でOK。
> 「しかしBisonは自身のコードの一部をコピーするのでGPL強制です。」
ここもこの翻訳(意訳)でOK。
> BisonとやらはGCCの一部なのかい?
> だとするとやっぱりGCCを使うと結果的に産物もGPL強制?
現在のGCC(g++しか記憶にないが)はbison使わないんじゃなかったか?
以上まとめると、商用利用も万事OKで全く制約はないと思われ。
353 = :
>>350
いや再確認してるだけだろ、無能はだまっとれ。
354 = :
>346
元々この FAQ の項は GPL なツールを使ってフリーじゃないプログラムを開発できますか?という項。
で、問題ないというのが最初の段落なんだけど、自身のコードの一部をコピーするものもある、というのが次の段落に説明されていて
その例として Bison (構文解析器を作成する為のツール) が挙げられている。
コピーされたコードについては元々のライセンスが適用されるんだけど、Bison に関して言えば例外が認められていて非フリーの
プログラム作成に使っても問題ない、というのが最後の段落。
仮に GCC が Bison を利用していたとしても影響を受けるのは GCC まで。
結局、いずれにしろ GCC の生成物を非フリーとして利用してもよい。
まとめると GPL なツールを用いて非フリーのプログラムを作成しても基本OKだけど、ソースをコピーするものについては
それぞれ例外条項があるかどうか確認するべし、となる。
355 = :
>>352
>>354
なるほど、だいぶ分かりました。
GCCは非フリー利用にも耐えうる事が
ちゃんとオフィシャルに示されているわけですね。
GCCが発展した理由が分かったような気がしてきました。
361 = :
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で文字化けせずに表示する方法はないでしょうか。
362 = :
今のcygwinはsetlocaleをほとんど無視する仕様だった希ガス
363 = :
>>362
setlocaleはCygwin-1.7なら一応動く。(つか、setlocaleしないとまともに動かず、それはそれで困っているので現在hack中)
ただし、wcwidth/wcswidthも腐ってるので、ncursesw使っても日本語はNGというしょぼーんな結果に。
そのうち何とかするつもりなので気長に待て。
364 = :
cygwinで日本語表示は厳しそうですね・・・
仮想PCにXPを入れてWindows Service for Unix3.5上で動かしてみたら、
先のサンプルでの”ほげほげ”の表示の確認ができました。
仕方がないので、Windows Service for Unix3.5を使っていこうと思います。
ありがとうございました。
365 = :
>>364
XWindow使えば少しはましだった希ガス。尤も、そこまでしてCygwinにこだわる必要もない黄モス。
367 = :
cygwinのwcwidth/wcswidthが腐ってても--enable-widecつけてビルドすると
libutf8のほうの使うようになるから、おkだった希ガス
あとはsetlocale(LC_ALL, NULL);が常にja_JP.UTF-8を返すようにしたcygwinのdllと
少なくてもUTF-8表示に対応した端末(漏れの場合はck
用意したら表示できたYO
368 = :
#include <iostream>
int main()
{
std::cout << "能" << std::endl;
return 0;
}
このコードがg++ 3.4.5 Mingwでコンパイルできません。
どうすれば良いでしょうか?
369 = :
"能\"
370 = :
>>369逆じゃねーの?
372 = :
gcc --input-charset=cp932 --exec-charset=cp932
373 = :
>>368
http://seclan.dll.jp/dtdiary/2009/dt20090324.htm
374 = :
なるほど、文字コードの問題なのですね。
ありがとうございます。
376 = :
なるほど、
多少の処置が必要なのですか。
ありがとうございます。
377 = :
俺もそれでハマったんで
本当にMinGWのインストーラは糞だわ
というか8ビット圏の人間無視してるだろって感じ
378 = :
www.tdragon.net/recentgcc
俺はこれ使ってる
379 = :
>>378
これSTLportの最新版(5.2.1)ビルドできる?
380 = :
>>379
若干の修正が必要だが一応ビルドできた
EHテストも通ったけど
ちゃんと使えるライブラリとしてビルドできたかどうかは不明
381 = :
MinGWでGDI+ができた人いませんか?
382 = :
ハッシュ検索関係hcreate/hsearch/hdestroy
cygwinにはあってMinGWにはないのな
-mno-cygwinで使いたきゃ自力で実装するしかないっと
384 = :
-- foo.c
extern void g();
void f() { g(); }
--
gcc -shared foo.c -o foo.so
こんな共有ライブラリを作る場合、
シンボルgについて何も知らなくても実行時に解決してくれるはずですが、
cygwinで同じことをやろうとするとfoo.soがビルドできません。
(undefined reference to `_g' とldに言われる)
何か別のオプションが必要なのでしょうか?
386 = :
>>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
ちゃんと書かなきゃいけないようです。
書けない場合は自分でシンボル解決しなきゃいけないのか
388 = :
>384
一応こんなのもあるべ。
http://alain.frisch.fr/flexdll.html
389 = :
>>381
http://wiki.bb4win.org/wiki/Using_GDIPlus_With_MinGW
390 = :
Windows XP SP2です。
g++ source.cpp
というコマンドでコンパイルすると、
コンパイルエラーが大量に出て
上の方が読めなくなってしまいます。
コンパイルエラーは、特に最初の方が大事なわけで
これでは困るのですが、どうしたら全てのエラーメッセージがでるでしょうか?
g++ source.cpp > result.txt
の様にリダイレクトしてみたのですがだめでした。
391 = :
>>390
オイオイ。 標準エラー出力をとらなきゃ駄目だろ。
g++ source.cpp 2> result.txt
っていうかソースコードをある程度のサイズに分割しておけば、
最初の方が流れてしまうほど大量のエラーメッセージにはならないはず。
392 = :
>>391
2>
で取れるのですか。
初めて知りました。
ありがとうございます。
>ソースコードをある程度のサイズに分割しておけば、
まさにおっしゃる通りです。
・・・が、特定のクラスのデバッグ用途のソースなため
分割の意味があまりなく、またエラーが出る時はソース全てに渡り
むっちゃくちゃ一斉に出るという特徴がありまして。
393 = :
OSの使い方を先に覚えないとな
394 = :
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です。
395 = :
>>394
> これはboostのインストールがうまくいってないという事なのでしょうか?
たぶんそう。
bjam は cygwin のパス変換ルールを知らないかもしれない。
実際にどこにインストールされたか探してみなYo
397 = :
cygwin使ってんだけどxemacsの中で日本語入力ってどうやればいいんですか?
398 = :
>>397
帰れ、死ね
399 = :
概要:
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に設定しています。
マルチバイト文字を正しく認識していない為だと思われます。
対処法を御存じの方は、よろしくお願いします。
みんなの評価 : ☆
類似してるかもしれないスレッド
- 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
トップメニューへ / →のくす牧場書庫について