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 に置き換える必要があることを意味します。もっと簡単な解決策はありませんか?そして、それは本当にどういう意味ですか?