元スレGCCについて part9
gcc覧 / PC版 /みんなの評価 : ○
751 = :
このスレで聞いてるってことは、GCCを使うんだろ?
GCCの追加includeパスの指定の仕方はわかってるんだよな?
753 = :
処理するファイルになんか書いとく・コマンドラインオプションの指定・環境変数の設定くらいしかできることはないだろ。さてどれだ。
754 = :
あらかじめ設定しておくのは出来ないんですか?
MSVCやBCCは出来るんですが。設定ファイルがあります。
755 = :
ありますよ
756 = :
MSVCやBCCはIDE、GCCはそうじゃない。
ちなみにMSVCやBCCにも素のコンパイラ部分には追加パスの自動
解決機能はない。
IDEがコンパイル時やリンク時の追加パスを解決してくれてただけで
GCCにはIDEの機能はない。
自分でmakefileを編集する能力がなければ自動生成してくれるIDEを
使いなさい。
758 = :
だから何?
761 = :
Borlandの場合はコマンドラインコンパイラの部分だけ別製品として
無償配布しているからIDEつきとで別の名前になってるけど
VC++の場合は無償版でもIDEがついてるから特別な呼称はないはず。
Windows SDKに「Microsoft Visual C++ Compiler」という名前で付属してたり
「Microsoft Visual C++ Toolkit 2003」という名前で単体配布されてたりしたことはある
762 = :
いまでもMicrosoft Visual C++ Compilerは、WindowsSDKに付いてるが。
IDEなしで。
763 = :
>>762
おまえ国語の成績悪かっただろ
764 = :
GCCのIDEはEmacsでって言う奴が大半な気がする
俺はVimだけど
767 = :
ぽぽぽぽーん
768 = :
>>756
bccは設定ファイルに指定できるし
vcは環境変数に指定できる。
お前が無知なだけ。
769 = :
環境変数はともかく、設定ファイルに書くとはセンス悪いなあ。
771 = :
>>768
で「誰」がその設定ファイルや環境変数のセッティングをするの?
bccが設定ファイルに「書いてから、また、読む」とか?
vcが環境変数を「設定してから、また、読み取る」とか?
確かに「無知」は「お前だけ」だなwww
772 = :
小学生?
773 = :
>>771は頭が悪いのか使ったこともないのに偉そうにしてるのか
インストーラやIDEに決まってるだろ
もちろんコマンドラインからしか使わないぜって人はそれらの機構は無視すればいい
774 = :
ていうか、必要があれば自分でやるに決まってるでしょ。
IDEしか使わない人はIDE上でしか設定しないし
コマンドラインを使ったことがない人は、
「誰が設定するの?」と書き込んで、心中では
「へへー、俺って鋭い指摘してるな、エヘン」と思っているのかもしれないね。
ていうか、gccのスレにIDEしか使わない人が来ているのが不思議。
使わない、じゃなくて使えない、なのかもしれないけど。
775 = :
>>771
で、何が無知で、無知がどうしたって?
>>756
>ちなみにMSVCやBCCにも素のコンパイラ部分には追加パスの自動
>解決機能はない。
776 = :
>>774もちょっと読み違えてないか?
777 = :
>>775
日本語が理解できないらしいな。
> 素のコンパイラ部分には追加パスの自動解決機能はない。
で、どこに「自動解決機能」があるってか?
778 = :
マニュアル調べても分からんから駄目元で質問
リンカスクリプトをいじってるとうまくいかなくてはまることが多いんだけど
エラーチェックが弱いんじゃないかと。
リンカスクリプトのチェックを強力にするオプションはないかね。
例えば、
SECTIONS
{
hoge :
{
aaaa.o(.hoge)
} > foo
}
aaaa.oに.hogeセクションが無い場合でもエラーにならないけど、エラーにして欲しい。
779 = :
まともなリンカーはエラーにはしないでしょうに...
780 = :
これをエラーにするとまともなリンカじゃないの?何故?>>779
781 = :
素人向きの機能?
リンカーの吐くマップファイルみりゃわかるでしょ
リンカーに頼るより、コンパイルする時に気をつければいいのでは
782 = :
Macでそのままconfigureしてmakeしたら
-archオプション認識しない罠
複数ターゲットのクロスコンパイラとしてconfigureしないと
ユニバーサルバイナリ作れないのか・・・?
--targetに何か指定すればいいの? 教えてエライ人!
784 = :
>>778
面倒だから試してないけど、こんなんでどうか?
hoge :
{
__before_hoge__ = .;
aaaa.o(.hoge)
__after_hoge__ = .;
} > foo
ASSERT(__after_hoge__ - __before_hoge__, ".hoge not found in aaaa.o");
コンパイルするときに気をつけろってのは愚の骨頂
785 = :
セクションの書き方がなんとなく...
786 = :
>>783
それヒントにググってたら
MacPortsでもインスコできるようなのでそれでやってみたけど
+universalつけても無理だた・・・
man gccをよく読んでみたら、
「FSF GCCはfatオブジェクトファイルを作らない、つまり、単一アーキテクチャに対するオブジェクトファイルを作る
AppleのGCCは-archオプションが複数指定されたらfatファイルを作る」
と書かれていたので、Apple自体が提供するGCCじゃないと-archはないのね
-m32でi386、-m64でx86_64でコンパイルする事自体はできるので
別々にビルドしてlipoで繋げないといけないのか・・・めどい
787 = :
gccはGPLなんだからアップルがパッチないしは修正gccのソースを出してるはずだろう。
それ見て該当する変更を自分で加えればいいんじゃないか。
788 = :
4.2からずっと出てないし
そう単純な変更じゃなさそうなのでもういいよ
Makefileいじって両方出力する方が早そうだ
790 = :
いずれそうなるだろ
Appleだけじゃなく*BSD系全部
792 = :
でもclangがgcc並になるのは10年くらいかかりそうだな
793 = :
まずはpccに移行してるみたいね。
>>788
そだね。
794 = :
>>788
lipoつーのもコマンドラインから使えたりしない?
だったら完全自動化もできそう
795 = :
>>786
-march= 所与の CPU 用のコードを生成する
796 = :
>>784
サンキュー
なるほど参考になります。
一旦完成したldスクリプト/makefileを間違って編集しないためには最適だね。
でもゴリゴリ編集してる間は手抜きしてASSERTせずにはまりそう。
-Wみたいに強制的にチェックするウマい話はないみたいっすね…
797 = :
そんな使い方せんにゃらんとは?
798 = :
組み込みやっててハードの方もまだ開発中とかだと稀によくある
799 = :
妖しいやり方でもしてんのかあ
みんなの評価 : ○
類似してるかもしれないスレッド
- GCCについて part8 (763) - [95%] - 2009/3/11 8:47 ☆
- GCCについて part10 (538) - [90%] - 2018/7/5 20:30
- 【激遅】AppleGCC【絶望】 (111) - [18446744073709551607%] - 2010/1/15 10:31
トップメニューへ / →のくす牧場書庫について