FreeBSD初心者運用日記 このページをアンテナに追加

 | 

2007-11-03

[]インクルードファイルの場所を指定 06:00 インクルードファイルの場所を指定 - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - インクルードファイルの場所を指定 - FreeBSD初心者運用日記 インクルードファイルの場所を指定 - FreeBSD初心者運用日記 のブックマークコメント

CFLAGS = -I/usr/X11R6/include

[]ライブラリの指定 06:00 ライブラリの指定 - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - ライブラリの指定 - FreeBSD初心者運用日記 ライブラリの指定 - FreeBSD初心者運用日記 のブックマークコメント

場所を指定

-L/usr/local/lib

ライブラリファイルを指定

-lm

※ この場合、libm.aを指定したことになる。

[]lsコマンドのチップス 05:50 lsコマンドのチップス - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - lsコマンドのチップス - FreeBSD初心者運用日記 lsコマンドのチップス - FreeBSD初心者運用日記 のブックマークコメント

$ ls -asl hoge*
0 -rw-r--r--  1 vitamin  wheel  0 11  4 05:48 hoge1
0 -rw-r--r--  1 vitamin  wheel  0 11  4 05:48 hoge2
0 -rw-r--r--  1 vitamin  wheel  0 11  4 05:48 hoge3
$ ls -asl hoge[^2]
0 -rw-r--r--  1 vitamin  wheel  0 11  4 05:48 hoge1
0 -rw-r--r--  1 vitamin  wheel  0 11  4 05:48 hoge3

[]Binary Hacks読書 05:29 Binary Hacks読書 - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - Binary Hacks読書 - FreeBSD初心者運用日記 Binary Hacks読書 - FreeBSD初心者運用日記 のブックマークコメント

ライブラリ作成

$ cat hoge.c
#include <stdio.h>
int hoge() {
        printf("hello\n");
}
$ cat foo.c
#include <stdio.h>
int foo() {
        printf("hello\n");
}
$ cc -c -o hoge.o hoge.c
$ cc -c -o foo.o foo.c
$ ar ruv libhogefoo.a hoge.o foo.o
$ ar tv libhogefoo.a 
rw-r--r-- 1001/0    768 Nov  4 05:25 2007 hoge.o
rw-r--r-- 1001/0    768 Nov  4 05:25 2007 foo.o

nmコマンド実行

$ nm hoge.o
00000000 T hoge
         U printf
white.localhost:~$ nm .o
white.localhost:~$ nm libhogefoo.a 

hoge.o:
00000000 T hoge
         U printf

foo.o:
00000000 T foo
         U printf

U は未定義な関数名 (外部参照の関数ってこと )

T がその場所で定義されている関数名を表す。

odコマンドは、ファイルのダンプを行う。oはオクテットの略だけど、10進数や16進数にも対応してたりする。

[]gdb 22:09 gdb - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - gdb - FreeBSD初心者運用日記 gdb - FreeBSD初心者運用日記 のブックマークコメント

以下のコマンドでコアの場所を確認

$ sysctl -a | grep kern.corefile

kern.corefile: %N.core

※ %Nはman coreで見ると、プロセス名のことらしい。

以下のコマンドでgdbモードに。

$ gdb {実行ファイル} {コアファイル}

[]bashのチップス 06:49 bashのチップス - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - bashのチップス - FreeBSD初心者運用日記 bashのチップス - FreeBSD初心者運用日記 のブックマークコメント

cp index.html{,.old}

cp index.html index.html.old

と同じ意味。

mvでも同じことができるよ。

 |