2018-05-30 :-|
_ [C言語][リンク]同じシンボルがあるオブジェクトをリンクする
その場合はリンク時に最初に見つけたシンボルが使われる。
main.c
#include <stdio.h>
extern void foo(void);
int main(int ac, char** av)
{
foo();
return 0;
}
a.c
#include <stdio.h>
void foo(void)
{
puts("I am a");
}
b.c
#include <stdio.h>
void foo(void)
{
puts("I am b");
}
コンパイルする。
% gcc -c main.c % gcc -c a.c % gcc -c b.c
静的ライブラリを作る。
% ar r foo.a b.o
リンクする
% gcc -o main main.o a.o foo.a
実行する。最初に見つけた a.o の foo() が呼ばれる。
% ./main I am a
静的ライブラリを先に持ってくるとリンク時に怒られる。
% gcc -o main main.o foo.a a.o a.o: In function `foo': a.c:(.text+0x0): multiple definition of `foo' foo.a(b.o):b.c:(.text+0x0): first defined here
なおシンボル
% nm foo.a
b.o:
0000000000000000 T foo
U puts
% nm a.o
0000000000000000 T foo
U puts
weak シンボルというのがあったり ELF の場合は云々という事情もあるらしい。weakシンボルなんて絶対に混乱の原因になるだろ。
_ [結城友奈は勇者である][ゆゆゆい][ゆゆゆ]結城友奈は勇者である 勇者の章 ブルーレイを買った
初回特典です。テレビ放映してたときに最終回を見損ねたので買いました。
「花結のきらめき」のシリアルコードが封入されてるので貰いました。
神花開放していくとイラストが変わります。
最初の背景はこちら。
神花開放した背景はこちら。
必殺技がぶっとんでますなあ。
B0766MVSLF
[ツッコミを入れる]










