1 名前:名称未設定 [2008/01/30(水) 20:41:04 ID:fAB8CXvQ0] MacOSXの開発環境Xcodeのスレです。 関連リンクは>2あたりに 前スレ Xcodepart5 pc11.2ch.net/test/read.cgi/mac/1176452734/ それ以前 XCode pc5.2ch.net/test/read.cgi/mac/1061702196/ Xcodepart2 pc7.2ch.net/test/read.cgi/mac/1089429452/ Xcodepart3 pc7.2ch.net/test/read.cgi/mac/1124761121/ Xcodepart4 pc11.2ch.net/test/read.cgi/mac/1149300142/
152 名前:名称未設定 mailto:sage [2008/03/06(木) 16:54:48 ID:GfYledmv0 BE:370070126-2BP(521)] もしかしてPerlでよく見たあれか? ソとか表とかが末尾でも再現する?
153 名前:名称未設定 [2008/03/06(木) 16:58:03 ID:J9BSV49a0] >>151 sjisなんてもってくんなよ、汚れるwwW
154 名前:名称未設定 mailto:sage [2008/03/06(木) 17:01:55 ID:GfYledmv0] beログインしたままだった>< やっぱダメ文字だろうな… 多分当該文字のすぐ後ろに¥を挟むと正常動作するかと
155 名前:151 mailto:sage [2008/03/06(木) 17:09:48 ID:7ug35Tdv0] >>152 ビンゴかも。 表=95H,5CH 能=94H,5CH ちなみに\も5CH
156 名前:名称未設定 mailto:sage [2008/03/06(木) 17:13:06 ID:GfYledmv0] ちょっとぐぐって来た gccにオプションで文字コードを渡さないといけないらしい それもcp932を渡すのが一般的らしい Xcodeがオプションを渡してないか、cp932で渡してないか、かな?
157 名前:151 mailto:sage [2008/03/06(木) 17:14:16 ID:7ug35Tdv0] >>154 なるほど、C言語で\が改行の無効を表してたんですね。 \をもう一つ付ければ良いのかって、きっつー 試しに"能\"としましたが、ダメみたいです。
158 名前:名称未設定 mailto:sage [2008/03/06(木) 17:19:18 ID:GfYledmv0] うん、ダメだった、ごめん 素直にソースファイル全選択→情報→エンコーディングでUTF-8→変換 の方が早いかも
159 名前:151 mailto:sage [2008/03/06(木) 17:19:37 ID:7ug35Tdv0] >>156 その通りですね。 でも、プロジェクトの設定でSJISしたら、Carbonでエラーでましたorz /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/HIToolbox.framework/Headers/CarbonEvents.h:40:34: error: failure to convert cp932 to UTF-8
160 名前:名称未設定 mailto:sage [2008/03/06(木) 17:21:45 ID:GfYledmv0] ごめん、俺お手上げだわorz
161 名前:151 mailto:sage [2008/03/06(木) 17:23:33 ID:7ug35Tdv0] >>160 いえいえ、各種情報有難うございました。 つまり、Windowsで開発するときから、ファイルをUTF8にしとけば良いわけですね。 WinCVSちゃんと言う事きいてくれるかなぁ。
162 名前:名称未設定 mailto:sage [2008/03/06(木) 18:00:05 ID:7ug35Tdv0] XCodeのSJIS→UTF8のエンコーディングが失敗します。 何かコマンドで文字変換できないでしょうか? コマンドならばXCodeからコールできるので。
163 名前:名称未設定 mailto:sage [2008/03/06(木) 19:13:44 ID:anJTgO4j0] nkfでできるけど、俺はMultiTextConverterにDrag&Dropでやっちゃうな。
164 名前:名称未設定 mailto:sage [2008/03/06(木) 19:30:02 ID:Kjy+zKFC0] iconv標準で入ってなかったっけ?
165 名前:名称未設定 mailto:sage [2008/03/06(木) 19:40:19 ID:anJTgO4j0] あ。入ってるね。
166 名前:名称未設定 mailto:sage [2008/03/06(木) 21:29:38 ID:rJ4l463m0] ヒレガスの新しい本でも買っとくか。 www.amazon.co.jp/gp/product/0321503619
167 名前:名称未設定 mailto:sage [2008/03/06(木) 21:41:50 ID:e+SkS7sn0] すでに予約済み。でもUSだと値引きで$35で買えるのになぁ。
168 名前:名称未設定 mailto:sage [2008/03/06(木) 21:56:17 ID:ocvl2PuQ0] >>166 予約した 翻訳版は出るのかな?
169 名前:名称未設定 mailto:sage [2008/03/06(木) 23:50:22 ID:GL44wYwb0] >>157 一旦 0x5c がコメント内で現れたら何をしても駄目っぽい。 >>159 インクルードファイルにも同じエンコーディングを適用されるみたいね。 特に Carbon のファイルは MacRoman なことがある。 ただ無理矢理 SJIS (CP932) と思って変換することもできるはずだが... 謎。 一応回避策として、システムのヘッダはプレコンパイルしておいて、自分のファイルの コンパイルをするときは gcc にプレコンパイル済みヘッダと -finput-charset を指定、 という手もあるかも。 が、Xcode で特定のファイルにだけコンパイルのフラグを追加する方法がよくわからん。
170 名前:名称未設定 mailto:sage [2008/03/07(金) 00:15:01 ID:5LaZ8yUF0] >>161 だから、まえにもいったけど、なぜ CVS ソフトが文字コードを気にするのか ...
171 名前:名称未設定 mailto:sage [2008/03/07(金) 00:22:56 ID:5LaZ8yUF0] と思ったけど、WinCVS で、コピー時に SJIS から UTF-8 に相互に変換、 とか出来ないの?
172 名前:名称未設定 mailto:sage [2008/03/07(金) 08:59:47 ID:qxxWx9nv0] おk、CVSのことは何も考えないことにします。 (問題となるとしたら、WinCVSがバイナリファイルとして認識したら、差分チェックインができなくなるくらい) ところで、 >sjisなんてもってくんなよ、汚れるwwW で気になったんですが。 今って0$で各種文字コードが意識して使ってる時代になりましたが、日本語デフォルト文字コードって何なんでしょう? Win9Xの日本語環境→SJIS WinNTの日本語環境→UCS2 旧Mac OSの日本語環境→ Mac OS Xの日本語環境→
173 名前:172 mailto:sage [2008/03/07(金) 09:15:00 ID:qxxWx9nv0] UNIXって日本語文字環境はEUCだった気がするし、 今時のUNIXはUTF8がデフォなのもあるし、 MacはUNIXを内部に隠して見えなくしてるし、 どうなのか知りたいです。 改行コードに関しては、 Win→CRLF UNIX→LF Mac→CR とオモって調べたら、 今のMacってLFになってません? Mac OS Xから変わったんですか?
174 名前:名称未設定 mailto:sage [2008/03/07(金) 09:50:15 ID:5LaZ8yUF0] 改行はOS X になって変わりました。 あと、OS Xのデフォルト日本語コードですが、GUI 部分は基本的にユニコードです。ユニコードのどれかというのは透過的にやってくれます。 ファイル名は utf8 です。 古い API で、それをつかうと SJIS (MacJapanese といってちょっと違うけど) としてファイルが扱われるようなのもありますが、 全部 deprecated になってて Apple としては使わないでくれということになってます。 というのは、その古い API は、エンコーディングを SJIS にする、 ということではなくて、 エンコーディングをユーザーの使っている言語環境の デフォルトエンコーディングと仮定する、というものなので、 日本語環境でログイン → その API でファイルに書き込み →ログアウトして英語環境でログイン → その API でファイルを読み込み とかすると激しく文字化けします。ファイル名のあつかいとかをきちんと utf8 でせずに、いい加減にしていると、 日本語環境では動くのに英語環境ではうごかないソフト、またはその逆もできたりします。 (TeX 関係でこういうソフトは多いです。) おれは日本人にしかソフト売らないぜ、という場合でも、日本語だけども英語環境でログインして mac を使ってる人も案外いたりすることを覚えておいてください。 英語環境でログインしてても、ユニコードを使ってるソフトならちゃんと日本語つかえるわけで、メニューとかが英語になるだけなので。 というわけで、売り物のソフトを新しく作っている場合は、ソースコードの文字コードはともかく、保存その他はお願いだから unicode にしてください。
175 名前:172 mailto:sage [2008/03/07(金) 10:00:07 ID:qxxWx9nv0] >>174 有難うございますorz 旧→X、の逝行なんて聞かないと調べ切れませんもんね正直。 >GUI 部分は基本的にユニコードです。 >ファイル名は utf8 です。 あっ、そーなんだ知らなかったガクブル >古い API で、それをつかうと SJIS (MacJapanese といってちょっと違うけど) >エンコーディングをユーザーの使っている言語環境のデフォルトエンコーディングと仮定する、というものなので、 Winと全く同じですね。 古いものはSJISで、新しいOSはデフォルトエンコーディングでUNICODE化(UNICODEのエンコーディングはOSによって違うのでしょうが)すると。 あれ? ・SJISってDOSモンリーの世界かと思ってたのに違うんですかぁ。 ・UNIXといえばEUCだと思ったのに、MAC OS X/BSDにはEUCは無関係なんですねぇ。
176 名前:名称未設定 mailto:sage [2008/03/07(金) 10:15:45 ID:5LaZ8yUF0] ファイル名は、プログラム内に日本語のファイル名を書き込むとかしない限り普通は大丈夫なはず。 GUI でファイルを開く ... ダイアログから返ってきたファイル名のエンコーディングがなんであれ、そのままシステムの API に渡してたら、ちゃんと動きます。 もちろん、GUI のダイアログからかえってきた日本語ファイル名を、自分でしらずに勝手にエンコーディング変換して BSD API とかに渡すと悲惨なことになりますが。 つくったソフトをテストする際に、ファイル名が日本語、ファイル名が英語でも、パスに日本語が含まれるときにちゃんと動くか確かめてください。 > SJISってDOSオンリー これは 旧 Mac OS が日本語化されたときに SJIS を採用したからです。 だから OS X もそれを引き継いでます。でもちょっと SJIS と違います。 ja.wikipedia.org/wiki/MacJapanese 参照。 > UNIXといえばEUCだと思ったのに、MAC OS X/BSDにはEUCは無関係なんですねぇ。 OS X の BSD レイヤーでファイル名以外で日本語をつかうひとなんてほとんどいないと思います。というわけで OS X の BSD レイヤーで動くソフトをとってきたときの日本語エンコーディングはいろいろ入り乱れてます。 UTF8 もあり、EUC もあり、SJIS もありです。でもファイル名は UTF8 です。
177 名前:172 mailto:sage [2008/03/07(金) 10:26:48 ID:qxxWx9nv0] なるほど、知りたい情報とかイメージは全部分かりました。 BSDレイヤーでは文字コード混乱ですかぁ。 この雑多な感じを楽しむのか利用に耐えないと見るのか、 ユーザーによって決まりますね。 中の人がBSDであることは開発者にとっては信用置ける上面白いんですが、 一般ユーザーとか業務で使う人には、フーン、でしょうね。 文字コードCR→LFへの変更の逸話があったりしたら、 ちょっと興味ありますね。 やっぱ、中の人をBSDにしたりBSDアプリを動作させるには必須だったってことでしょうか。 何ていうか、マとして、文字コード=CRの世界は終焉しましたから、 そういうファイルを扱う場合にはファイル変換して下さい、みたいな対応の方が楽ですもんねぇ。
178 名前:名称未設定 mailto:sage [2008/03/07(金) 11:20:25 ID:5LaZ8yUF0] というか、普通のユーザーは BSD レイヤなんか使わないんでどうでもいいと思います。そもそも出荷状態の OS X だと、BSD レイヤで日本語を出すものはほとんど無いです。 混乱してる、といったのは、ネットからオープンソースのものを入れたときに日本語エンコーディングがどうなっているか、という話で、そんなことをするオタクはそんなもの解決出来てあたりまえでしょう。 おっしゃるとおり、ふつうのひとならフ〜ンだと思います。 改行=CR な世界は終焉、じゃなくて SJIS or EUC or JIS な世界は終焉、ということにしてください。 ぜんぶユニコードにすればかなりの問題がなくなります。 ソースコードも windows 版もふくめて utf にすればいいと思いますが、 会社の方針とかでむずかしいですかね。
179 名前:172 mailto:sage [2008/03/07(金) 13:01:59 ID:qxxWx9nv0] 延々とレスすみません。 >普通のユーザーは BSD レイヤなんか使わないんでどうでもいいと思います。 orz >改行=CR な世界は終焉、じゃなくて SJIS or EUC or JIS な世界は終焉、ということにしてください。 そりゃ、プログラミングだけ見れば理想ですが。。。 >ソースコードも windows 版もふくめて utf にすればいいと思いますが、 会社の方針とかそういうわけじゃなくて、Winの世界ではSJIS大前提のソフトウェアがフリーから自作から利用してるものが膨大にあるわけで、、、 ところで、Macのファイルパスって、昔からの「Macintosh HD:〜」と、BSDの「/」と2つありますよね。どっちが推奨なんでしょうね。 Winでも、普通の「C:\」もあれば、「デスクトップ\」(←さらに、All usersのものと、ローカルユーザーのもの2つあるのカンベン)ありますが、 これってもしかして、Macが先にあってWinが真似したんでしょうか?
180 名前:名称未設定 mailto:sage [2008/03/07(金) 13:29:24 ID:5LaZ8yUF0] 積み立ててきたものが膨大にあるのは理解出来ますが、世の中の潮流は徐々に unicode にむかいつつあります。 いつか気合いを入れて乗り換えないといけないので、今回 172 さんが mac で開発するハメになったのをいい機会だと思って、徐々に全般に unicode に置き換えていったらどうかと思います。 > ところで、Macのファイルパスって、 GUI にパスを表示するなということだと思います。OS X の付属の GUI ソフトで、つかっていて、パスが : 区切りもしくは / 区切りで表示されるものなんてないでしょ。 内部的にはほとんど BSD ですから、 / をつかったほうがいいでしょう。 一部旧 Mac OS を引き継いだ部分もありますが、そういうところでも : 式のパスをつかうところは滅多に無いです。一瞬で FSSpec か FSRef になってしまうので。 また、Apple の推奨 API をつかうばあいは、そもそもパスを char* に保存するときに、/ 区切りか : 区切りかはプログラマが気にしないでいいようになっています。 Carbon - Core Foundation の標準文字列 CFString には CFStringGetFileSystemRepresentation という関数があって、 CFStringGetCStringPtr でエンコーディングに UTF8 を指定するのと同じ結果が返ってきますが、前者を使うことが推奨されてます。というのは、ある日OS X のバージョンが変わってファイルのパスのエンコーディングが変わるかもしれないからです。
181 名前:名称未設定 mailto:sage [2008/03/07(金) 13:40:14 ID:5LaZ8yUF0] あと、知らないかも知れないのでいっておきますが、 >Macintosh HD:〜 の Macintosh HD: の部分は可変です。 Windows みたいに c: 固定じゃないですよ。 ファインダーで名前が変えられるので。 だから、万が一 : 区切りのパス名を 172 さんが内部的につかっている場合は、 いますぐやめましょう。すくなくとも Macintosh HD を決めうちするのはやめましょう。
182 名前:172 mailto:sage [2008/03/07(金) 13:45:59 ID:qxxWx9nv0] なるほど、プログラムの中の人は、BSD式の「/」を使って、ファイル名はUTF8にしておけば良いわけですね。 エンコーディングを明示的に記述できれば、問題は解決しそうですが。 WindowsのBCBでやってるときは、AnsiToUtf8、Utf8ToAnsi関数でやってますが。
183 名前:名称未設定 mailto:sage [2008/03/07(金) 14:03:34 ID:x5vsgweV0] BSD が好きなら、OS X には普通に iconv がはいってるので、 #include <iconv.h> で好きなようにエンコーディング変換してください。 もしくは、CFString をつかえば unicode 経由で エンコーディング間の変換も自在にできます。 developer.apple.com/documentation/CoreFoundation/Conceptual/CFStrings/Articles/about.html
184 名前:172 mailto:sage [2008/03/07(金) 14:23:27 ID:qxxWx9nv0] >>183 うわ、それ最強情報。 悩みがちょー一気に解決。
185 名前:名称未設定 mailto:sage [2008/03/07(金) 15:30:10 ID:6ACi9Jb50] >>179 > ところで、Macのファイルパスって〜 Application Data、Preferences等のシステム固定のパス(URI、FSSpec等)は、APIを使って取得できます。 OSXの場合は、カレントのVolumeが/になってくれるので、システム側のパスなら問題はないと思いますが、 ユーザー側のパスがほしいときは、APIで取得するのが一般的だと思います。 このへんはWindowsでもやり方は同じですよね。 確かAPIでドライブ名や、フォルダパスを取得できたはずです。
186 名前:172 mailto:sage [2008/03/07(金) 15:49:51 ID:qxxWx9nv0] >>185 了解です。サンクス。 ファイル選択ダイアログを開いて、 BSDパスをUNICODEで取れれば、 やりたいことはミッションコンプリートです。 今別作業してますので、終わったら、それの調査に入ります。
187 名前:名称未設定 mailto:sage [2008/03/07(金) 17:33:18 ID:gbj3Egm+0] MainMenuとMyWindowの2つのnibファイルを作りファイルメニューで新規ウィンドウが 呼ばれるたびにMainMenuのAppControllerで[MyWindowController alloc] init]でウィンドウ を作るようにしました(ヒレガス本7章のやり方そのまま)。 こうやって作ったMyWindowControllerからAppControllerにアクセスしたい(メソッドを呼びたい) 場合はどうやったらいいんでしょうか? 現在はMyWindowControllerにid型のメンバapp_ctrlとsetAppCtrlメソッドを作りAppControllerの ポインタを渡しておいて一応動作してるのですが、こんな方法でいいんでしょうか?それとももっと Cocoaらしい方法があるんでしょうか?
188 名前:名称未設定 mailto:sage [2008/03/07(金) 18:08:46 ID:ZfVPipcK0] gcc 4.2使ってみてるひといますか? gcc42preview1notes.rtfを見る限りでは、 直接的な影響はなく導入できるとありますが・・・ デバッガとおらないとかってことはないでしょうか。
189 名前:名称未設定 mailto:sage [2008/03/08(土) 12:38:49 ID:HDUoXXFz0] >>187 AppControllerをNSApplicationのdelegateにして [NSApp delegate]で参照する。
190 名前:名称未設定 mailto:sage [2008/03/08(土) 13:45:46 ID:8WvtywAl0] >>189 なるほど、delegateって決められたメソッドを代理で実行するだけなのかと思っていたら こういう使い方もできるんですね。単なるid型のメンバー変数だから、これに代入された クラスのメソッドはすべて使えると。
191 名前:名称未設定 [2008/03/08(土) 18:28:16 ID:RV/7+e820] Xcode3.1。ARMに対応...Cocoa touch...
192 名前:名称未設定 [2008/03/08(土) 22:44:54 ID:gza4M5xM0] 3.1すげー使い易い。「概要」ポップアップが最高。 ほんのりと変数も見やすい。
193 名前:名称未設定 mailto:sage [2008/03/08(土) 23:07:05 ID:1H5duaSr0] それってiPhone Developer向け? 普通のconnect.apple.comでログインしてもXcode 3.0のままなんだけど。
194 名前:名称未設定 mailto:sage [2008/03/08(土) 23:14:19 ID:7oYAD0bV0] 俺3.1だけの為にiPhone Dev登録した… iPhone SDKにまるまる入ってたけど3.1betaらしいんだが…
195 名前:名称未設定 mailto:sage [2008/03/09(日) 00:37:54 ID:qByZEO6i0] iPhone SDK という名前だけど XCode の mac 用周りもかなり改良されてるよ。
196 名前:名称未設定 mailto:sage [2008/03/09(日) 01:32:14 ID:yUI9vGvW0] 1台しか持ってないけど入れてみるかな...
197 名前:名称未設定 mailto:sage [2008/03/09(日) 14:03:34 ID:WuSJa6No0] IBのNSWindowの情報パネルのSIZEタブにあるInitial Positionの白い四角 の4辺にある突起は何をしてするものでしょうか?伸ばしてみても何が変わった のかわからないんですが?
198 名前:名称未設定 mailto:sage [2008/03/09(日) 15:16:59 ID:BoOqFBFl0] バネで動かない様に押さえつけてるイメージだな。
199 名前:名称未設定 mailto:sage [2008/03/09(日) 22:25:02 ID:Z+7AxN830] >>166 表紙がオサレになったもんだ
200 名前:名称未設定 mailto:sage [2008/03/10(月) 11:39:30 ID:iJuIHBpQ0] ふとADCのサイトにあったチュートリアル見たら 「MVCはコントローラから作るのが鉄則」 って書いてあるんだが、 MVCアーキテクチャってみんなはどこから作ってる?
201 名前:名称未設定 mailto:sage [2008/03/10(月) 11:59:24 ID:MEt35dA+0] ドキュメントクラスから。
202 名前:名称未設定 mailto:sage [2008/03/10(月) 15:13:53 ID:ZMi9uCw70] モデルから書いてたわ
203 名前:名称未設定 mailto:sage [2008/03/10(月) 15:45:22 ID:MEt35dA+0] >「MVCはコントローラから作るのが鉄則」 これは変じゃね? GUIのコントロール色々と張り替えたいし、そのためにはそれに依存しないコードとしたいし。
204 名前:名称未設定 mailto:sage [2008/03/10(月) 17:16:45 ID:ZfQHeXN30] 何のためらいも無くビューからつくって実装しないで終わる
205 名前:名称未設定 mailto:sage [2008/03/10(月) 18:03:35 ID:SgkU2d620] >>204 わろた
206 名前:名称未設定 mailto:sage [2008/03/10(月) 18:03:52 ID:iJuIHBpQ0] 元々プロトタイプ開発型のWebアプリ屋だったんでどうしても 「アプリは紙芝居(ビュー)から作る」ってイメージしかなかった。 その考えがしみついてたから、普通のアプリは違うのかと思って聞いてみた。 しかしなんでコントローラーから作れって書いてあったんだろう。 根拠がいまいちわからん。
207 名前:名称未設定 mailto:sage [2008/03/10(月) 20:05:24 ID:Wsla/MCR0] 簡単なものならコントローラだけで済むしなあ
208 名前:名称未設定 mailto:sage [2008/03/10(月) 20:39:30 ID:7PSG2vmy0] モデルやビューの設計変更がコントローラに及ぶからじゃないの?
209 名前:名称未設定 mailto:sage [2008/03/10(月) 20:48:05 ID:7PSG2vmy0] あと >>206 的発想だと,MVC に分離されていない様に感じる. View と Controller がごっちゃになってると思う. GUI 部品から Control することしか考えてないからかな?
210 名前:名称未設定 mailto:sage [2008/03/10(月) 21:58:08 ID:3mHVeGc50] >>209 >元々プロトタイプ開発型のWebアプリ屋 ここがポイント。
211 名前:名称未設定 mailto:sage [2008/03/11(火) 00:19:33 ID:fatWhn9d0] ヒレガス本ではビューから作れって書いてあったような
212 名前:名称未設定 mailto:sage [2008/03/11(火) 10:01:01 ID:1SfvpYHy0] Mac OS 10.4 のXCodeですが、ブレークポイントを解除してプロジェクトを開きなおすと、 またブレークポイントが復帰してます。 結構、XCodeにはイライラ。
213 名前:名称未設定 mailto:sage [2008/03/11(火) 10:31:20 ID:7VENjfAw0] Xcode 2.4.1/2.5のバグ。ブレークポイントウィンドウのほうで削除する。
214 名前:名称未設定 mailto:sage [2008/03/11(火) 11:21:12 ID:f8z1vQQ+0] Xcode3では、明らかに通過するはずのブレークポイントなのに、 停止しないときがある。 なんでじゃ。
215 名前:名称未設定 mailto:sage [2008/03/11(火) 11:35:16 ID:I553ZzBY0] 最適化でその行がなくなっているとか?まあたんに XCode のバグかもしらんけど。
216 名前:名称未設定 mailto:sage [2008/03/11(火) 19:13:17 ID:kBZhjEGtO] あ、なるほど。確かにデフォルトの最適化 オプションは、最小最速かなんか、一番最適化度の 高いやつでしたね。
217 名前:名称未設定 mailto:sage [2008/03/12(水) 03:07:58 ID:DmmiTKdn0] ドキュメント読む時みんな印刷してる?最近椅子座ってパソコンでドキュメント見るの疲れてさ。 疲れない椅子とかねえのかな〜 ここまで俺の日記
218 名前:名称未設定 [2008/03/12(水) 03:57:36 ID:5OF5LzOI0] life9.2ch.net/test/read.cgi/kagu/1203086586/l50
219 名前:名称未設定 mailto:sage [2008/03/12(水) 04:34:56 ID:DmmiTKdn0] なんだ、親切に悪いな。ありがとよ
220 名前:名称未設定 mailto:sage [2008/03/12(水) 11:23:48 ID:TLsCr2bM0] ソースファイルをUTF8にしようかとしたら、 1ファイルだけUTF8にしてもダメなんだね。 UTF8ファイルの先頭2バイトで、コンパイルエラー起こしちゃった。
221 名前:名称未設定 mailto:sage [2008/03/12(水) 11:52:29 ID:2RV0ZjLb0] >>220 BOM付UTF8になってるとかかな? 2バイトだったよねBOMって。
222 名前:220 mailto:sage [2008/03/12(水) 12:00:29 ID:TLsCr2bM0] あ、つまり、BOM無しUTF8にすれば良いってことですか? gccはBOM無しのみコンパイル可能?
223 名前:名称未設定 mailto:sage [2008/03/12(水) 12:15:25 ID:2RV0ZjLb0] ごめん。 先頭2バイトならBOMかなって思っただけ。 まあ、BOMつきUTF8は邪道だしね。 「はあ?」ってなる可能性もなくはないよね。
224 名前:220 mailto:sage [2008/03/12(水) 12:18:23 ID:TLsCr2bM0] いえいえそうじゃなくて、UTF8ってBOM付きのものしか知らなかったんですが、 ソースコードではBOM無くすのがふつーなんでしょうか?
225 名前:名称未設定 mailto:sage [2008/03/12(水) 12:25:18 ID:pVGVyx440] UTF-8 は Windows は BOM をつけることが多いですが、 それ以外では BOM をつけないことが多いです。
226 名前:220 mailto:sage [2008/03/12(水) 12:26:17 ID:TLsCr2bM0] 了解しました。BOM付けないことにします。 エディタ開いた後に、文字コード切替えですね。
227 名前:名称未設定 mailto:sage [2008/03/12(水) 13:06:03 ID:TLsCr2bM0] XCodeのバージョンをうpして、 文字エンコードの設定が動作しないバグが直ればSJISコンパイルをgccに通知したりできるんですかね? 現在はMac OX 10.4 です。
228 名前:名称未設定 mailto:sage [2008/03/12(水) 13:23:31 ID:pVGVyx440] できると思いますが、XCode 2 系はもうアップデートされないと思うよ ... レパードにして XCode 3 にすると治ってるかも知れません。 ただ、gcc は unix 系のソフトなので、sjis とは長らく相性が悪いです。 UTF-8 にすることをおすすめします。
229 名前:名称未設定 mailto:sage [2008/03/12(水) 13:41:00 ID:TLsCr2bM0] ラジャ
230 名前:名称未設定 mailto:sage [2008/03/12(水) 13:45:01 ID:2RV0ZjLb0] BOM付UTF8っていろんな場面で問題が起こるので「邪道」と書きましたが 規格に適合してるわけですからちょっと問題ある書き方でしたね。 あと、BOMは3バイトでしたね。 とりあえず、Mac OS X ではBOMなしUTF8を使用する方がいいですよ。 Cocoa、おそらくCFも、XMLなplistにBOM付UTF8を使用すると爆発します。(w いまは直ってるかもしれませんが、以前これですごく悩みました。(w
231 名前:名称未設定 mailto:sage [2008/03/12(水) 13:47:13 ID:TLsCr2bM0] BOMなしに心がけますが、 それってアポー手抜き(ry
232 名前:名称未設定 [2008/03/12(水) 13:52:17 ID:1quZHvVs0] gccは元々Shift-JISをサポートしていないんで、gcc自体にパッチを当てる必要がある。 utf8ってBOM付けないのが普通でないかい?unixのコマンドで読めなくなるよ。
233 名前:名称未設定 mailto:sage [2008/03/12(水) 14:00:47 ID:TLsCr2bM0] >gcc自体にパッチを当てる必要がある。 え、パッチ当てるだけで対応できちゃうんですか? ならそっちになびきますが。 >unixのコマンドで読めなくなるよ。 初めてのコンピューターはUNIXだったのでコマンド使いまくってましたが、 今はコマンド好きではありません。
234 名前:名称未設定 mailto:sage [2008/03/12(水) 14:14:25 ID:pVGVyx440] TLsCr2bM0 さんのいつも書いてることから判断するに、gcc にパッチをあてるのはとても大変だとおもいますよ ... バイナリパッチが配られてるんじゃなくて、ソースコードにパッチあてるんですよ、それも Apple 版の gcc を www.opensource.apple.com/ からとってきてそれにあてて、きちんと XCode から呼ばれるところにインストールしないといけない。できますか?コマンド好きでないとできない作業です。 >>232 僕もそう思ってたけど、Windows ではそうでもないみたい。 en.wikipedia.org/wiki/Byte-order_mark 参照。Unix で UTF-8 が流行ってるのは 7-bit ascii に backward compatible だからなので、 BOM なんかつけると UTF-8 にした意味がなくなると思うんですが、 Windows は謎。
235 名前:220 mailto:sage [2008/03/12(水) 14:19:37 ID:TLsCr2bM0] そうですか、じゃ、BOMなしウニコード路線にしまつ。 >BOM なんかつけると UTF-8 にした意味がなくなると思うんですが、 そうですか? エディタがエンコード間違えなくて便利ですが。 ウェブサイトのエンコードが行われるのもBOMのおかげと思ってたんですが。。。
236 名前:名称未設定 mailto:sage [2008/03/12(水) 14:28:59 ID:pVGVyx440] え〜と、文脈から勝手に切り出さないでください :p > Unix で UTF-8 が流行ってるのは 7-bit ascii に > backward compatible だからなので、 > BOM なんかつけると UTF-8 にした意味がなくなると思うんですが、 と書いたのであって。 Unix のコマンド的には、普通の ascii を処理出来るコマンドなら 普通に UTF-8 が処理出来る、というのがいいので、そこで BOM がはいると、今回の gcc の話のようにおかしなことになります。 という意味で、UTF-8 には BOM がないほうが Unix 的には自然だよね、 と書きました。 ブラウザは多少同意しますが、普通 html 内に meta equiv='content-type: text/html; charset=UTF-8' って書きませんか?書いてあれば BOM なんて関係ないです。
237 名前:名称未設定 [2008/03/12(水) 14:51:24 ID:1quZHvVs0] ITリテラシがゆとり。
238 名前:名称未設定 mailto:sage [2008/03/12(水) 14:52:08 ID:xhlsFkhE0] >>232 少し上で、もうSJISの話題出てるんすけど。 >>156 にヒントが書いてあるけど-finput-charsetとかのオプションで一応SJISは使える。 が、 >>159 >>169 にあるようにインクルードファイルにSJISじゃない奴がいたりすると と駄目。
239 名前:名称未設定 mailto:sage [2008/03/12(水) 14:58:01 ID:pbMkQ4QO0] UTF-16ならまだしも、UTF-8にBOMは不要だと思うけど、 そもそも英語でコメント入れてるのであまり気にしたことなかったり。 >>233 もし仕事でアプリ作ってるのであれば、 Xcodeのビルドや、ローカライズ、インストールパッケージ作成まで コマンド化できるようにしておくと(というかスクリプト組むと)かなり楽だよ。 コマンドの真髄はスクリプトで自動実行できるところにあると思うんだ。
240 名前:名称未設定 mailto:sage [2008/03/12(水) 15:00:06 ID:TLsCr2bM0] >>239 コマンドは好きじゃないけど、 XCodeのスクリプトを実行は、使ってまつ。
241 名前:名称未設定 mailto:sage [2008/03/12(水) 15:23:52 ID:NkffztkY0] BOM付きはインクルードしたときにBOMがそのまま挿入されてゴミになるから嫌いだ
242 名前:名称未設定 mailto:sage [2008/03/12(水) 15:34:56 ID:TLsCr2bM0] それって、gccがBOMを読み捨てれば良いだけだと思うんだけど。
243 名前:名称未設定 mailto:sage [2008/03/12(水) 16:47:27 ID:pbMkQ4QO0] >>242 それをするためには、gccに「このソースにはBOMがついている」ということを教えないといけないよね。 あとは話がループしちゃうので省略。
244 名前:名称未設定 mailto:sage [2008/03/12(水) 16:49:56 ID:TLsCr2bM0] そんなことないよ。BOMの内容は文字と重ならない値だから、 gccの中の人ががファイルオープンして最初にBOMを確認してくれれば良い。
245 名前:名称未設定 mailto:sage [2008/03/12(水) 17:34:44 ID:pbMkQ4QO0] >>243 を訂正 × gccに「このソースにはBOMがついている」ということを教えないといけないよね ○ gccに「文字エンコーディング」を教えないといけない UTF-16(BE/LE)、UTF-8でBOMの内容違うので。 >>244 一度自分で何かのインタプリタ作ってみるといいよ。
246 名前:名称未設定 mailto:sage [2008/03/12(水) 17:43:31 ID:TLsCr2bM0] BOMがあればUTF8かUTF16か判定できるんだよ。 それらを空振りしたらANSI系判定に流れれば良いだけ。 解決しますた。
247 名前:名称未設定 mailto:sage [2008/03/12(水) 23:00:13 ID:FkKDHlOe0] BOMはUTF-8では幅0の空白扱いになるからなぁ それを空白扱いにするなら他の空白文字も空白扱いして欲しくなるな 全角スペースとか
248 名前:名称未設定 mailto:sage [2008/03/12(水) 23:11:17 ID:pVGVyx440] 別にどちらがより良いっていう理性的な話ではないんだけど。 TLsCr2bM0 さんが、これまでの自分の経緯から、 SJIS が使えるなら SJIS に越したことはない、と思うのと同様に、 Unix 使ってきた人なら、これまでの自分の経緯から、 ファイル先頭に BOM がなければないに越したことはない、と思うだけですよ。 相手がどう思うかに同意するかしないかとは別問題として、 相手がなぜそう思うかを理解は出来るんではないかと思うんですが、 だめ?
249 名前:名称未設定 mailto:sage [2008/03/12(水) 23:35:42 ID:7NLWZkxK0] >>248 諦めろ。彼は解決なされたのだ。お前も悟りを開く時が来たんだ。
250 名前:名称未設定 mailto:sage [2008/03/12(水) 23:45:25 ID:pVGVyx440] そう言われると救われた気がしました。
251 名前:名称未設定 mailto:sage [2008/03/13(木) 11:26:48 ID:DQNVccuU0] 質問なのですが、Xcodeでfltkを使う場合、どうすればいいんですか? 現在は、fltk-config --use-images --compile xxx.cpp とやって、コンパイルしています。
252 名前:名称未設定 mailto:sage [2008/03/13(木) 11:49:25 ID:8Iha0jUp0] ID: DQN きた!神!!!!!