戸川です.

On Tue, 22 Dec 2009 17:45:10 +0900
nao <nao....@gmail.com> wrote:

> つまり、/usr/local/以下のincludeとlibを使う場合にはコンパイラに明示的にオプション
> として渡す必要があるというのが結論なのですが、これはデフォルト状態なのでしょうか?
> #いままで、このように明示した記憶がないので、これがデフォルトなのか迷っています。

FreeBSDのgccはそれがデフォルトだと理解しています.

簡単なプログラムを -v オプションつきでコンパイルすると,includeの探索リストや
-Lのデフォルト時の指定が出てきます.
----
tog...@kotoko:~$ gcc -v hello.c
Using built-in specs.
Target: amd64-undermydesk-freebsd
Configured with: FreeBSD/amd64 system compiler
Thread model: posix
gcc version 4.2.1 20070719  [FreeBSD]
 /usr/libexec/cc1 -quiet -v -D_LONGLONG hello.c -quiet -dumpbase hello.c 
-auxbase hello -version -o /var/tmp//ccsQIMHm.s
ignoring duplicate directory "/usr/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include
End of search list.
GNU C version 4.2.1 20070719  [FreeBSD] (amd64-undermydesk-freebsd)
        compiled by GNU C version 4.2.1 20070719  [FreeBSD].
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 26c21d99a931276c70e7be82ca7be046
 /usr/bin/as -V -Qy -o /var/tmp//cceHxOBr.o /var/tmp//ccsQIMHm.s
GNU assembler version 2.15 [FreeBSD] 2004-05-23 (x86_64-obrien-freebsd) using 
BFD version 2.15 [FreeBSD] 2004-05-23
 /usr/bin/ld --eh-frame-hdr -V -dynamic-linker /libexec/ld-elf.so.1 
/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib -L/usr/lib 
/var/tmp//cceHxOBr.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc 
--as-needed -lgcc_s --no-as-needed /usr/lib/crtend.o /usr/lib/crtn.o
GNU ld version 2.15 [FreeBSD] 2004-05-23
  Supported emulations:
   elf_i386_fbsd
   elf_x86_64_fbsd
----

ということで,FreeBSD上でGCCを使う場合,/usr/local/include のインクルード
ファイルや /usr/local/lib のライブラリを使う際には明示的に -I や -L が
必要,と理解しています.

# specsファイルのありかが分かれば早いのですが,残念ながら手元では
# 見付けることができなかったので,そのへんの探しかたを詳しい方教えて
# いただけるとありがたいです.

-- 
t...@puyo.org 戸川聡士

メールによる返信