В моем проекте есть функция, которая очищает терминал, который реализуется с помощью библиотеки curses. Компиляция с -lcurses
флагом отлично работает, но компиляция без yeildsМожете ли вы обрабатывать ошибки времени компиляции в C++?
/tmp/cc3T2MVI.o: In function `ClearScreen()':
clear_term.cpp:(.text+0xb): undefined reference to `cur_term'
clear_term.cpp:(.text+0x26): undefined reference to `setupterm'
clear_term.cpp:(.text+0x37): undefined reference to `tigetstr'
clear_term.cpp:(.text+0x3f): undefined reference to `putp'
collect2: ld returned 1 exit status
Это, очевидно, ожидал, потому что не может найти библиотеку, а потому, что эта функция является дополнением было бы предпочтительнее, чтобы определить ClearScreen()
как пустая функция, чем иметь сбор отсутствует. Я знаю, что я положил определение функции в блок #ifdef
, но я не знаю никаких флагов, определенных проклятиями.
Возможно ли уловить эти ошибки и вместо этого определить ClearScreen()
как пустую функцию?
Это скорее ошибка компоновщика, а не ошибка компилятора. Компилятор C++ обычно создает один '.o' (или '.obj') на файл' .cpp', который он обрабатывает, и компоновщик собирает все '.o', чтобы сформировать библиотеку (динамическую или статическую) или исполняемый файл. –