g cc флаги компиляции при таргетинге linux из Visual Studio - PullRequest
0 голосов
/ 01 мая 2020

Я занимаюсь разработкой кода на С ++ для Visual Studio 2019 (версия 16.5.4), и для сборки нацеливаюсь на Linux Ubuntu 18.04 с g cc 7.5 - оба на удаленной машине через s sh и на моей локальной машине через WSL2.

В обоих случаях у меня одна и та же проблема: при использовании std::async мне нужно добавить флаг компиляции -lpthread ко входу g cc, чтобы программа компилировалась, иначе я get

неопределенная ссылка на pthread_create

Более того, флаг должен идти после имени файла cpp, то есть g++ -lpthread xxx.cpp завершится ошибкой с g cc 7.5 , в то время как g++ xxx.cpp -lpthread работает нормально.

пока все хорошо, но вот проблема: я не могу сделать успешную сборку через Visual Studio: когда я добавляю флаг -lpthread в Дополнительные параметры в свойствах C / C ++ проекта, это не так Вроде бы какой-то эффект - компиляция все равно не удалась. более того, поскольку я не вижу, чтобы флаг был добавлен в командную строку полной сборки (которая представлена ​​только для чтения), у меня нет возможности увидеть, действительно ли флаг отправляется, и в правильном порядке (а именно после cpp имя файла). поскольку я не вижу способа вручную редактировать командную строку сборки, у меня нет идей ... кто-нибудь?

Спасибо.

...