Я создал библиотеку stati c без ошибок.
Когда я попытался связать ее с каким-то приложением, я понял, что некоторые символы не определены внутри библиотеки.
Я хочу получить ошибку в библиотеке шаг построения не в приложении.
Другими словами
$ cat mylib.h
void foo();
$ cat mylib.c
#include "mylib.h"
// no foo() implementation here;
$ cat test.c
#include "mylib.h"
int main() {
foo();
return 0;
}
$ gcc mylib.c -c
$ ar crf libmylib.a *.o
$ gcc test.c -lmylib -L.
/tmp/cc7201uP.o: In function `main':
test.c:(.text+0xa): undefined reference to `foo'
collect2: error: ld returned 1 exit status
Я хочу получить ошибку на одном из этих шагов
$ gcc mylib.c -c
$ ar crf libmylib.a *.o
Возможно ли это, и что такое хорошая практика для таких ситуаций?
Обновлено: Я пробовал $ nm --undefined-only *.a
Вывод:
mylib.o:
Это немного странно для меня. Я ожидаю что-то вроде foo()
внутри вывода.