[FreeBSD-users-jp 96168] Re: cmake と iconv.h
小野寛生です。 cmake の問題ではありませんでした。 2017/11/13 Hiroo Ono (小野寛生): >> 小野寛生です。 >> 意図としては、/usr/include/iconv.h を include して libc にある iconv >> を使いたいです。 >> >> CMake を使うと /usr/local/include/iconv.h (GNU libiconv のやつ) を見つけて >> そっちを読み込んでしまいます。 という問題ですが、 > それはともかく、 -I がどのような順序になるように生成されているのか、確認した方が良い気はします。 という指摘をいただいて確認したところ、 CMakeFiles/target.dir/flags.make:CXX_INCLUDES = -I /usr/local/include -I/usr/home/hiroo/work/foo/src/target/../include のようになっていて、CMakeLists.txt の target_include_directories で /usr/include を 指定してもしなくても変わりませんでした。 それ以前に、そもそも cc でも -I に /usr/include を指定しても無視されていました。 でもって、Cコンパイラの (少なくとも gcc や clang での) インクルードファイルの 検索順は、 1) -I で指定されたディレクトリ 2) -isystem で指定されたディレクトリ 3) システムディレクトリ (/usr/include はここ) となっていて、/usr/local/include に libiconv の iconv.h がある場合に、 インクルードディレクトリに /usr/local/include を指定すると詰んでしまうようです。 FreeBSD の ports の場合ですが、libiconv には glib が依存していて、 これにいろんな ports が依存しているので、どれか一つでも入れるとひっかかります。 というわけで、glib なりそれに依存しているライブラリなりを使う場合は > 3. GNU の軍門に下って libiconv を使う。 しかなさそうです。cmake は幸い libiconv ではなく icu を使っているので、 クリーンなやり方の順に 4') jail を使って libiconv をインストールしていない環境を用意してそこで ビルドする。 5. #include "/usr/include/iconv.h" とやって使う。 > 4. (ビルド環境で) /usr/local/include/iconv.h を消す。 か ln -s /usr/include/iconv.h /usr/local/include/iconv.h とやる。 というあたりが結局解決方法なのかなと考えています。 ___ freebsd-users-jp@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"
[FreeBSD-users-jp 96167] Re: zipアーカイブ中の日本語ファイル
しらいです。 On 17/11/13 21:53, Tomoaki AOKI wrote: 青木@名古屋です。 FDcloneといえば、UTF-8の日本語ファイル名のファイルが多数ある ディレクトリの表示が異常に遅かったりするのは何か設定で対策 できるのでしょうか? lsやmisc/mcでは発生しないのでFDcloneの 内部処理で何かあると踏んでいるのですが。 内部コードの EUC-JP との間で変換が大量に発生して遅くなって いるんだと思います。付け焼刃ですが UNICODEBUFFER=1 に設定す ると多少はましになるかと。 UTF-8 を内部コードにという要望はかねてからあるのですが、グ リフ幅の判定が難しいので及び腰です。テーブルを用意して端末毎 に動的に切替える必要があるので結構大変です。 2 はリソースが Sjift_JIS 以外のコードだと誤解して変換して しまった結果だと思うので、nkf に -s オプションに加えて適切な --ic オプションを設定してやることで復元出来るかも知れません。 こちらは別途丸山さんのメールへの返信で書いたように、化け方が 1と同じなら文字コード指定がないからiconvの機能を使っていない だけ、違う化け方ならしらいさんのおっしゃるとおりかと。 どちらも nkf でも直らないということなので、UTF-8 以外のコ ードで出力さえたという単純なことではないと思います。1 は MSB 欠落のようですが 2 は何だったんでしょうね? 気になります。 しらい たかし ___ freebsd-users-jp@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"