我编写了一些在 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。没有更简单的解决方案吗?它的真正含义是什么?