Поэтому я пытаюсь использовать Visual Studio 2017 для создания проекта Linux.
Я начал с пустого проекта Linux (как шаблон проекта), и пока все в порядке.
Однако, если у меня есть
// Create a new thread for the connection to avoid clutter
std::thread newConnectionHandler(connectionHandler, iNewConnection);
newConnectionHandler.detach();
в моем коде, он не скомпилируется. Вот ошибки, которые я получаю:
Error E0020 identifier "__float128" is undefined
Error In function `std::thread::thread<void(&)(int), int&>(void(&)(int), int&)':
Error undefined reference to `pthread_create'
Error ld returned 1 exit status
Но как только я комментирую материал std::thread
, он компилируется.
Вот что я пробовал до сих пор:
- C / C ++ -> Дополнительные параметры -> Добавлено
-pthread -lpthread
или просто -pthread
- Linker -> Дополнительные параметры -> Добавлено
-pthread -lpthread
или просто -pthread
- Компоновщик -> Зависимости библиотеки -> Добавлено
thread
- Переключение стандарта языка C ++ между C ++ 17 и C ++ 11
И, конечно, я пробовал несколько вариантов этих изменений, но всегда получаю одну и ту же ошибку.
И мои включения:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <thread>
EDIT:
Вот также объявление connectionHandler
:
void connectionHandler(int iConnection)
А при прохождении iNewConnection
тип данных равен int
.