Почему неявное объявление pthread_yield с -lpthread в то время как все нормально с -pthread?
Я компилирую этот код main.c в CentOS7 с помощью gcc:
#include <pthread.h>
void* mystart(void* arg)
{
pthread_yield();
return(0);
}
int main(void)
{
pthread_t pid;
pthread_create(&pid, 0, mystart, 0);
return(0);
}
1-я компиляция:gcc -Wall -g main.c -pthread -o a.out
Это все нормально.
2-я компиляция:gcc -Wall -g main.c -lpthread -o a.out
дает
предупреждение: неявное объявление функции 'pthread_yield' [-Wimplicit-function-объявление]
Может 2-йa.out
все еще работает правильно?Как исправить предупреждение без-pthread
? Являетсяsched_yield
другой способ получить pthread?