probSAT https://github.com/adrianopolus/probSAT を試してみる。
コンパイルしようとしたらclangさんが以下のようなエラーを出してくれた。 これらの関数はinline関数として定義されている関数なんだけれど、そういえばC99のinlineは外部定義を生成しないから、こういうことが起こりうるのだな。 話には聞いたことがあったが、実際に自分で遭遇すると、何だか狐につままれた気分である。 とりあえず、 static inline に変更して対応。
Undefined symbols for architecture x86_64:
"_parseFile", referenced from:
_main in probSAT-db9ee7.o
"_pickAndFlip", referenced from:
_setupParameters in probSAT-db9ee7.o
_main in probSAT-db9ee7.o
(maybe you meant: _pickAndFlipVar)
"_pickAndFlipNC", referenced from:
_setupParameters in probSAT-db9ee7.o
_main in probSAT-db9ee7.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
参考: Using extern inline
https://github.com/ytomino/headmaster/wiki/Using-extern-inline