🐖
clang の --configオプション
はじめに
clang に --config
オプションというのをあるのを知りました。
clang 16あたりから追加でしょうか。
おためし
以下のようなフォルダ構成、コードを用意します。
フォルダ構成
$ tree
.
├── hello.c
├── inc
│ └── sample.h
└── sample.cfg
それぞれのファイルの中身は以下
hello.c
#include <stdio.h>
#include "sample.h"
int main() {
sample();
printf("hello world\n");
return 0;
}
inc/sample.h
int sample(void) {
printf("sample.\n");
return 0;
}
sample.cfg
-Iinc
バージョンは以下
$ clang --version
clang version 16.0.0
Target: x86_64-unknown-linux-gnu
Thread model: posix
インクルードパスを指定しないと当然エラー
$ clang -o hello hello.c
hello.c:2:10: fatal error: 'sample.h' file not found
#include "sample.h"
^~~~~~~~~~
1 error generated.
いつも通り(?) -I
オプションでインクルードパスを指定
$ clang -Iinc -o hello hello.c
$ ./hello
sample.
hello world
--config
を指定してみる
$ clang --config=./sample.cfg -o hello hello.c
$ ./hello
sample.
hello world
--config
でもできました。
Discussion