diary/Kojima/2013-09-02
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[diary/Kojima]]
・LLVM-3.3 on Plamo-5.1/i586(その3)
当然ながら,crtbegin.oもシステム上は存在している.
$ ls -l /usr/lib/gcc/i586-pc-linux-gnu/4.6.3/crtbegin.o
-rw-r--r-- 1 root root 1,632 4月 18日 2012年 /usr/lib/g...
GCCだと,crtbegin.oの位置は-Bオプションで指示できたっけ,...
試してみたら,LLVMでもこのオプションは効くようで,crtbegi...
解決できなくてエラーになる.
$ clang++ -v test.cpp -I/usr/include/c++/4.6.3 -I/usr/i...
-B/usr/lib/gcc/i586-pc-linux-gnu/4.6.3/
clang version 3.3 (tags/RELEASE_33/final)
Target: i386-plamo-linux-gnu
Thread model: posix
...
"/usr/bin/ld" --eh-frame-hdr -m elf_i386 -dynamic-linke...
/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc/i586-pc...
-L/lib -L/usr/lib /tmp/test-oJXAvV.o -lstdc++ -lm -l...
-lgcc /usr/lib/gcc/i586-pc-linux-gnu/4.6.3/crtend.o ...
/usr/bin/ld: cannot find -lgcc
clang-3.3: error: linker command failed with exit code 1...
/usr/lib/には libgcc_s.so.1 という共有ライブラリはあるも...
エラーになっているのは -lgcc なので,このライブラリとは異...
リンクするようなライブラリってあったっけ,,調べてみたと...
GCCが内部的に使っているライブラリらしい.
$ grep libgcc /var/log/packages/*
/var/log/packages/gcc:usr/lib/gcc/i586-pc-linux-gnu/4.6....
/var/log/packages/gcc:usr/lib/gcc/i586-pc-linux-gnu/4.6....
/var/log/packages/gcc:usr/lib/libgcc_s.so.1
/var/log/packages/gcc:usr/lib/libgcc_s.so
じゃぁ,このディレクトリも指示してやればいいのか,と-Lオ...
ようやくビルドが通った.
$ clang++ -v test.cpp -I/usr/include/c++/4.6.3 \
-I/usr/include/c++/4.6.3/i586-pc-linux-gnu \
-B/usr/lib/gcc/i586-pc-linux-gnu/4.6.3/ \
-L/usr/lib/gcc/i586-pc-linux-gnu/4.6.3
clang version 3.3 (tags/RELEASE_33/final)
Target: i386-plamo-linux-gnu
Thread model: posix
"/usr/bin/clang-3.3" -cc1 -triple i386-plamo-linux-gnu ...
-mrelax-all -disable-free -disable-llvm-verifier -ma...
-mrelocation-model static -mdisable-fp-elim -fmath-e...
-mconstructor-aliases -target-cpu pentium4 -v
-resource-dir /usr/bin/../lib/clang/3.3 -I /usr/incl...
-I /usr/include/c++/4.6.3/i586-pc-linux-gnu -interna...
-internal-isystem /usr/bin/../lib/clang/3.3/include
-internal-externc-isystem /include -internal-externc...
-fdeprecated-macro -fdebug-compilation-dir /mnt/Srcs...
-fmessage-length 90 -mstackrealign -fobjc-runtime=gcc
-fobjc-default-synthesize-properties -fcxx-exception...
-fdiagnostics-show-option -backend-option -vectorize...
-x c++ test.cpp
clang -cc1 version 3.3 based upon LLVM 3.3svn default ta...
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/4.6.3
/usr/include/c++/4.6.3/i586-pc-linux-gnu
/usr/local/include
/usr/bin/../lib/clang/3.3/include
/usr/include
End of search list.
"/usr/bin/ld" --eh-frame-hdr -m elf_i386 -dynamic-linke...
/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc/i586-pc...
-L/usr/lib/gcc/i586-pc-linux-gnu/4.6.3 -L/lib -L/usr...
-lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
/usr/lib/gcc/i586-pc-linux-gnu/4.6.3/crtend.o /usr/...
$
$ ./a.out
Hello World!
とりあえずコンパイルできるようにはなったものの,
一々これらのオプションを指定しないと使えないってのはとて...
GCCみたいに環境変数で制御できないのだろうか,,と調べてみ...
ヘッダファイルのインクルードパスは CPLUS_INCLUDE_PATH と...
設定できる模様.
$ export CPLUS_INCLUDE_PATH=/usr/include/c++/4.6.3:/usr/...
$ clang++ -v test.cpp
clang version 3.3 (tags/RELEASE_33/final)
Target: i386-plamo-linux-gnu
...
clang -cc1 version 3.3 based upon LLVM 3.3svn default ta...
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/4.6.3
/usr/include/c++/4.6.3/i586-pc-linux-gnu
/usr/local/include
/usr/bin/../lib/clang/3.3/include
/usr/include
End of search list.
...
/usr/bin/ld: cannot find crtbegin.o: No such file or dir...
[[GCCのドキュメント:http://gcc.gnu.org/onlinedocs/gcc-4.4...
LLVMではこの環境変数は効かない感じ.
$ export GCC_EXEC_PREFIX=/usr/lib/gcc/i586-pc-linux-gnu/...
$ clang++ test.cpp
/usr/bin/ld: cannot find crtbegin.o: No such file or dir...
clang-3.3: error: linker command failed with exit code 1...
とりあえず,C_INCLUDE_PATHとCPP_INCLUDE_PATHを設定して,
clang/clang++に-Bオプションを追加するようなラッパーでも書...
何とかなりそうな感じにはなったものの,
64ビット側では問題ないのに,32ビット側だけ姑息な処理を追...
何か別の解決方法が無いものか,さらなる調査が続くのであっ...
#comment
終了行:
[[diary/Kojima]]
・LLVM-3.3 on Plamo-5.1/i586(その3)
当然ながら,crtbegin.oもシステム上は存在している.
$ ls -l /usr/lib/gcc/i586-pc-linux-gnu/4.6.3/crtbegin.o
-rw-r--r-- 1 root root 1,632 4月 18日 2012年 /usr/lib/g...
GCCだと,crtbegin.oの位置は-Bオプションで指示できたっけ,...
試してみたら,LLVMでもこのオプションは効くようで,crtbegi...
解決できなくてエラーになる.
$ clang++ -v test.cpp -I/usr/include/c++/4.6.3 -I/usr/i...
-B/usr/lib/gcc/i586-pc-linux-gnu/4.6.3/
clang version 3.3 (tags/RELEASE_33/final)
Target: i386-plamo-linux-gnu
Thread model: posix
...
"/usr/bin/ld" --eh-frame-hdr -m elf_i386 -dynamic-linke...
/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc/i586-pc...
-L/lib -L/usr/lib /tmp/test-oJXAvV.o -lstdc++ -lm -l...
-lgcc /usr/lib/gcc/i586-pc-linux-gnu/4.6.3/crtend.o ...
/usr/bin/ld: cannot find -lgcc
clang-3.3: error: linker command failed with exit code 1...
/usr/lib/には libgcc_s.so.1 という共有ライブラリはあるも...
エラーになっているのは -lgcc なので,このライブラリとは異...
リンクするようなライブラリってあったっけ,,調べてみたと...
GCCが内部的に使っているライブラリらしい.
$ grep libgcc /var/log/packages/*
/var/log/packages/gcc:usr/lib/gcc/i586-pc-linux-gnu/4.6....
/var/log/packages/gcc:usr/lib/gcc/i586-pc-linux-gnu/4.6....
/var/log/packages/gcc:usr/lib/libgcc_s.so.1
/var/log/packages/gcc:usr/lib/libgcc_s.so
じゃぁ,このディレクトリも指示してやればいいのか,と-Lオ...
ようやくビルドが通った.
$ clang++ -v test.cpp -I/usr/include/c++/4.6.3 \
-I/usr/include/c++/4.6.3/i586-pc-linux-gnu \
-B/usr/lib/gcc/i586-pc-linux-gnu/4.6.3/ \
-L/usr/lib/gcc/i586-pc-linux-gnu/4.6.3
clang version 3.3 (tags/RELEASE_33/final)
Target: i386-plamo-linux-gnu
Thread model: posix
"/usr/bin/clang-3.3" -cc1 -triple i386-plamo-linux-gnu ...
-mrelax-all -disable-free -disable-llvm-verifier -ma...
-mrelocation-model static -mdisable-fp-elim -fmath-e...
-mconstructor-aliases -target-cpu pentium4 -v
-resource-dir /usr/bin/../lib/clang/3.3 -I /usr/incl...
-I /usr/include/c++/4.6.3/i586-pc-linux-gnu -interna...
-internal-isystem /usr/bin/../lib/clang/3.3/include
-internal-externc-isystem /include -internal-externc...
-fdeprecated-macro -fdebug-compilation-dir /mnt/Srcs...
-fmessage-length 90 -mstackrealign -fobjc-runtime=gcc
-fobjc-default-synthesize-properties -fcxx-exception...
-fdiagnostics-show-option -backend-option -vectorize...
-x c++ test.cpp
clang -cc1 version 3.3 based upon LLVM 3.3svn default ta...
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/4.6.3
/usr/include/c++/4.6.3/i586-pc-linux-gnu
/usr/local/include
/usr/bin/../lib/clang/3.3/include
/usr/include
End of search list.
"/usr/bin/ld" --eh-frame-hdr -m elf_i386 -dynamic-linke...
/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc/i586-pc...
-L/usr/lib/gcc/i586-pc-linux-gnu/4.6.3 -L/lib -L/usr...
-lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
/usr/lib/gcc/i586-pc-linux-gnu/4.6.3/crtend.o /usr/...
$
$ ./a.out
Hello World!
とりあえずコンパイルできるようにはなったものの,
一々これらのオプションを指定しないと使えないってのはとて...
GCCみたいに環境変数で制御できないのだろうか,,と調べてみ...
ヘッダファイルのインクルードパスは CPLUS_INCLUDE_PATH と...
設定できる模様.
$ export CPLUS_INCLUDE_PATH=/usr/include/c++/4.6.3:/usr/...
$ clang++ -v test.cpp
clang version 3.3 (tags/RELEASE_33/final)
Target: i386-plamo-linux-gnu
...
clang -cc1 version 3.3 based upon LLVM 3.3svn default ta...
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/4.6.3
/usr/include/c++/4.6.3/i586-pc-linux-gnu
/usr/local/include
/usr/bin/../lib/clang/3.3/include
/usr/include
End of search list.
...
/usr/bin/ld: cannot find crtbegin.o: No such file or dir...
[[GCCのドキュメント:http://gcc.gnu.org/onlinedocs/gcc-4.4...
LLVMではこの環境変数は効かない感じ.
$ export GCC_EXEC_PREFIX=/usr/lib/gcc/i586-pc-linux-gnu/...
$ clang++ test.cpp
/usr/bin/ld: cannot find crtbegin.o: No such file or dir...
clang-3.3: error: linker command failed with exit code 1...
とりあえず,C_INCLUDE_PATHとCPP_INCLUDE_PATHを設定して,
clang/clang++に-Bオプションを追加するようなラッパーでも書...
何とかなりそうな感じにはなったものの,
64ビット側では問題ないのに,32ビット側だけ姑息な処理を追...
何か別の解決方法が無いものか,さらなる調査が続くのであっ...
#comment
ページ名: