- ベストアンサー
Mac OSX10.3Cc言語
初歩的な質問ですいません。 Mac OSX10.3で(i Book G4)にフルインストール10.3CD付属の Developer Toolsを入れました。 その前にiBook付属のX11を入れてます。 エラーが出て解決できません。 ソースは、初歩の初歩。 #include <stdio.h> int main() { printf("Hello, world.\n"); return 0; } Terminalのエラーメッセージは、 ld: can't locote file for; -lcrt1.o ご指導、お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> no-name:~ nameno$ ls-l/usr/lib/crt1.o > -bash: ls-l/usr/lib/crt1.o: No such file or directory > no-name:~ nameno$ ls -l/usr/lib/crt1.o > ls: illegal option -- / > usage: ls [-ABCFGHLPRSTWZabcdfghiklnoqrstuvx1] [file ...] UNIX系のコマンドライン操作にあまり慣れていらっしゃらないようですね。 lsと-l、-lと/usr/lib/crt1.oの間にそれぞれスペースが必要です。 > /usr/bin/ld -arch ppc -dynamic -lcrt1.o -L/usr/lib/gcc/darwin/2.95.2 -L/usr/lib/gcc/darwin -L/usr/local/lib /var/tmp/ccqubaaa.o -lcc_dynamic -lSystem > /usr/bin/ld: can't locate file for: -lcrt1.o GCC 2.95.2を追加でインストールしたようですが、こちらはcrt1.oを /usr/lib/gcc/darwin/2.95.2 /usr/lib/gcc/darwin /usr/local/lib の3つのディレクトリから探そうとしています。 念のため、上記のいずれにもcrt1.oがないことを確認してみてください。 > アンインストールはどうやったらいいんですか? 私の環境だと/Developerに"About Xcode Tools.pdf"というファイルがあり、その中に"Uninstalling Xcode Tools"という項目がありました。 質問者さんの環境とはバージョンなどが違うので、同じようにドキュメントを探してそれに従ってください。
その他の回答 (2)
- salsberry
- ベストアンサー率69% (495/711)
#1です。補足情報ありがとうございます。 このGCC 3.3はcollect2ではなくてldを実行していますね。それでもオプションの意味は基本的に一緒です。 "-L/usr/lib/gcc/darwin/3.3 -L/usr/lib/gcc/darwin -L/usr/libexec/gcc/darwin/ppc/3.3/../../.."と指定されているので、 /usr/lib/gcc/darwin/3.3 /usr/lib/gcc/darwin /usr/libexec/gcc のいずれかにcrt1.oというファイルが存在していなければいけません。 上記のどこにもなければ、 正しくインストールされていないか、インストール後にファイルを消してしまったりしたものと思われます。
お礼
早速の回答、誠にありがとうございます。
補足
ls -l/usr/lib/crt1.o ls: illegal option -- / usage: ls [-ABCFGHLPRSTWZabcdfghiklnoqrstuvx1] [file ...] no-name:~ nameno$ gcc -v hello.c Reading specs from /usr/libexec/gcc/darwin/ppc/2.95.2/specs Apple Computer, Inc. version gcc-938, based on gcc version 2.95.2 19991024 (release) /usr/libexec/gcc/darwin/ppc/cpp-precomp -smart -isystem /usr/include/gcc/darwin/2.95.2 -ispecs=/usr/libexec/gcc/darwin/ppc/2.95.2/specs -lang-c -v -arch ppc -D__GNUC__=2 -D__GNUC_MINOR__=95 -D__ppc__ -D__NATURAL_ALIGNMENT__ -D__MACH__ -D__BIG_ENDIAN__ -D__APPLE__ -D__ppc__ -D__NATURAL_ALIGNMENT__ -D__MACH__ -D__BIG_ENDIAN__ -D__APPLE__ -D__STDC__ -D__APPLE_CC__=938 -D__DYNAMIC__ hello.c /var/tmp/ccXAaaaa.i Apple cpp-precomp 6.14 (devkit-213/devkit_tools-214) Reading predefined macros from '/usr/libexec/gcc/darwin/ppc/2.95.2/specs' /usr/libexec/gcc/darwin/ppc/2.95.2/cc1obj /var/tmp/ccXAaaaa.i -fPIC -Wno-four-char-constants -quiet -dumpbase hello.c -version -o /var/tmp/ccK1aaaa.s GNU Obj-C version 2.95.2 19991024 (release) (ppc-darwin) compiled by GNU C version 2.95.2 19991024 (release). /usr/libexec/gcc/darwin/ppc/as -arch ppc -o /var/tmp/ccxsbaaa.o /var/tmp/ccK1aaaa.s /usr/bin/ld -arch ppc -dynamic -lcrt1.o -L/usr/lib/gcc/darwin/2.95.2 -L/usr/lib/gcc/darwin -L/usr/local/lib /var/tmp/ccxsbaaa.o -lcc_dynamic -lSystem /usr/bin/ld: can't locate file for: -lcrt1.o no-name:~ nameno$ ls-l/usr/lib/crt1.o -bash: ls-l/usr/lib/crt1.o: No such file or directory no-name:~ nameno$ cc hello.c /usr/bin/ld: can't locate file for: -lcrt1.o no-name:~ nameno$ ls -l/usr/lib/crt1.o ls: illegal option -- / usage: ls [-ABCFGHLPRSTWZabcdfghiklnoqrstuvx1] [file ...] no-name:~ nameno$ gcc -v hello.c Reading specs from /usr/libexec/gcc/darwin/ppc/2.95.2/specs Apple Computer, Inc. version gcc-938, based on gcc version 2.95.2 19991024 (release) /usr/libexec/gcc/darwin/ppc/cpp-precomp -smart -isystem /usr/include/gcc/darwin/2.95.2 -ispecs=/usr/libexec/gcc/darwin/ppc/2.95.2/specs -lang-c -v -arch ppc -D__GNUC__=2 -D__GNUC_MINOR__=95 -D__ppc__ -D__NATURAL_ALIGNMENT__ -D__MACH__ -D__BIG_ENDIAN__ -D__APPLE__ -D__ppc__ -D__NATURAL_ALIGNMENT__ -D__MACH__ -D__BIG_ENDIAN__ -D__APPLE__ -D__STDC__ -D__APPLE_CC__=938 -D__DYNAMIC__ hello.c /var/tmp/ccABaaaa.i Apple cpp-precomp 6.14 (devkit-213/devkit_tools-214) Reading predefined macros from '/usr/libexec/gcc/darwin/ppc/2.95.2/specs' /usr/libexec/gcc/darwin/ppc/2.95.2/cc1obj /var/tmp/ccABaaaa.i -fPIC -Wno-four-char-constants -quiet -dumpbase hello.c -version -o /var/tmp/cc02aaaa.s GNU Obj-C version 2.95.2 19991024 (release) (ppc-darwin) compiled by GNU C version 2.95.2 19991024 (release). /usr/libexec/gcc/darwin/ppc/as -arch ppc -o /var/tmp/ccqubaaa.o /var/tmp/cc02aaaa.s /usr/bin/ld -arch ppc -dynamic -lcrt1.o -L/usr/lib/gcc/darwin/2.95.2 -L/usr/lib/gcc/darwin -L/usr/local/lib /var/tmp/ccqubaaa.o -lcc_dynamic -lSystem /usr/bin/ld: can't locate file for: -lcrt1.o すいません。もう一度、再インストールしてみます。 一応、pkgを間違えたかもしれません。Developer Toolの方を入れたようで。Developer Tools.pkg gcc.2.95.2pkg MacOSX10.3pkg のなかにcrt1.oがありました。 macに疎いので、アンインストールはどうやったらいいんですか? 初心者で申し訳ありません。
- salsberry
- ベストアンサー率69% (495/711)
私の環境はPowerPC G4 + Mac OS X 10.4.11なので、質問者さんの環境と同じではない可能性もありますが… 実行ファイルのリンク時にはcrt1.oというファイルが必要なのですが、/usr/libにありますか? $ ls -l /usr/lib/crt1.o -r--r--r-- 1 root wheel 20394 May 27 2005 /usr/lib/crt1.o あとは、コマンドラインでgccを実行するときに-vオプションを指定してみてください。gccが内部で実行しているコマンドの様子が詳しく表示されます。"can't locote file for; -lcrt1.o"が出る直前におそらくcollect2が実行されていることが分かると思うのですが、その表示がどうなっているかを教えてください。 下記は、私の環境でわざと/usr/lib/crt1.oをリネームして試してみたものです。collect2は、-Lで指定されたディレクトリの中からcrt1.oを探そうとします。 $ gcc -v test.c …中略… /usr/libexec/gcc/powerpc-apple-darwin8/4.0.0/collect2 -dynamic -arch ppc -weak_reference_mismatches non-weak -o a.out -lcrt1.o /usr/lib/gcc/powerpc-apple-darwin8/4.0.0/crt2.o -L/usr/lib/gcc/powerpc-apple-darwin8/4.0.0 -L/usr/lib/gcc/powerpc-apple-darwin8/4.0.0 -L/usr/lib/gcc/powerpc-apple-darwin8/4.0.0/../../.. /var/tmp//ccuFraeR.o -lgcc -lgcc_eh -lSystemStubs -lmx -lSystem /usr/bin/ld: can't locate file for: -lcrt1.o
お礼
回答、ありがとうございます。 いっぱい出てきたので分かりません。
補足
no-name:~ nameno$ gcc -v hello.c Reading specs from /usr/libexec/gcc/darwin/ppc/3.3/specs Thread model: posix gcc version 3.3 20030304 (Apple Computer, Inc. build 1495) /usr/libexec/gcc/darwin/ppc/3.3/cc1 -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=0 -D__APPLE_CC__=1495 -D__DYNAMIC__ hello.c -fPIC -quiet -dumpbase hello.c -auxbase hello -version -o /var/tmp//ccxb6QkL.s GNU C version 3.3 20030304 (Apple Computer, Inc. build 1495) (ppc-darwin) compiled by GNU C version 3.3 20030304 (Apple Computer, Inc. build 1495). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=131072 ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/usr/ppc-darwin/include" ignoring nonexistent directory "/Local/Library/Frameworks" #include "..." search starts here: #include <...> search starts here: /usr/include/gcc/darwin/3.3 /usr/include End of search list. Framework search starts here: /System/Library/Frameworks /Library/Frameworks End of framework search list. /usr/libexec/gcc/darwin/ppc/as -arch ppc -o /var/tmp//ccq5vZCw.o /var/tmp//ccxb6QkL.s ld -arch ppc -dynamic -o a.out -lcrt1.o -lcrt2.o -L/usr/lib/gcc/darwin/3.3 -L/usr/lib/gcc/darwin -L/usr/libexec/gcc/darwin/ppc/3.3/../../.. /var/tmp//ccq5vZCw.o -lgcc -lSystem |
お礼
有難うございました。