Кроме того, при открытии свойств для обоих проектов в свойствах первого проекта я вижу, что категории «Основные параметры проекта» и «Связанные пакеты» появились, но они не отображаются во втором проекте.
Как мне сделать так, чтобы оба проекта могли использовать пакет NuGet?
Проблема в том, что вы не устанавливаете пакет nuget pthreads
во второй проект в то же время. Использование Project Reference или любого другого для C ++ не скопирует файл pthread.h
во второй проект.
Я думаю, вы просто установите пакет nuget с именем pthreads в проект библиотеки lib, а затем .exe
проект ссылается на проект lib. В этой ситуации файл pthread.h
не будет копироваться из первого проекта во второй проект, который действительно отличается от проектов .Net
.
На самом деле , вы должны установить пакет nuget в каждый проект, который его использует.
Решение
Таким образом, чтобы решить эту проблему, вы должны установить пакет nuget pthreads во второй проект одновременно. Щелкните правой кнопкой мыши на проекте (в котором нет меню Referenced Packages
) -> выберите Manage NuGet Packages
и найдите для установки nuget pthreads .
Кроме , если все проекты решения используют этот пакет nuget, вы можете щелкнуть правой кнопкой мыши на решение -> выбрать Manage NuGet Packages for Solution...
Кроме того , когда вы создаете проект и сталкиваетесь с этой ошибкой Ошибка C2011 'timespe c': переопределение типа 'struct' Вы можете добавить этот код в верхней части #include<pthread.h>
:
#define HAVE_STRUCT_TIMESPEC
Надеюсь, что это может помочь вам.