Я написал некоторый код, который отлично компилируется под Linux, но в Solaris я получаю некоторые ошибки компиляции. Я использую gcc test_compile.c -o tes -pthreads
для компиляции.
#include <semaphore.h>
int main(){
sem_t semaphore;
sem_init(&semaphore, 0, 0);
return 0;
}
Дает мне
itchy:~/edu/sysprog> gcc test_compile.c -o tes -pthreads
Undefined first referenced
symbol in file
sem_init /var/tmp//ccUiSK6A.o
ld: fatal: Symbol referencing errors. No output written to tes
Я не уверен, что происходит. Я попытался заменить sem_init
на sema_init
, и он скомпилировался (видел это где-то в Интернете). Однако это означало бы, что я должен просмотреть весь свой код и заменить sem на sema. Нет ли более простого решения? И что это на самом деле означает?