Повышающие сигналы2 не компилируются - PullRequest
0 голосов
/ 21 декабря 2018

Когда я просто добавляю заголовок #include <boost/signals2.hpp> в VS

, я получаю следующую ошибку, хотя он не может найти заголовок.

1>signals.cpp
1>c:\apps\mvs15\vc\tools\msvc\14.10.25017\include\memory(53): error C4996: 'std::uninitialized_copy::_Unchecked_iterators::_Deprecate': Call to 'std::uninitialized_copy' with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
1>c:\apps\mvs15\vc\tools\msvc\14.10.25017\include\memory(53): note: see declaration of 'std::uninitialized_copy::_Unchecked_iterators::_Deprecate'
1>c:\boost_1_69_0\boost\signals2\detail\auto_buffer.hpp(191): note: see reference to function template instantiation '_FwdIt *std::uninitialized_copy<I,boost::shared_ptr<void>*>(_InIt,_InIt,_FwdIt)' being compiled

Я не могу это исправить,Но мои Boost.Asio библиотечные заголовки работают нормально, и код компилируется.Поэтому я думаю, что проблема не в установке буста.

Edit1: я скачал исполняемые файлы Windows с сайта boost и установил их.Я использую VS 2017. Я добавил путь к библиотеке, заголовки в свойствах следующим образом.

Свойства конфигурации-> Связанные-> Общие-> Дополнительные каталоги библиотеки как C: \ boost_1_69_0 \ lib64-msvc-14.1;

Свойства конфигурации-> Включить каталоги добавили дополнительную папку C: \ boost_1_69_0;

Edit2: проблема решена путем добавления -D_SCL_SECURE_NO_WARNINGS в

Свойства конфигурации-> C / C ++ -> Командная строка.

1 Ответ

0 голосов
/ 21 декабря 2018

Я предполагаю, что вы компилируете в Windows, используя VS 2017.

C4996 на самом деле является предупреждением ( предупреждение компилятора C4996 ), а не ошибкой, поэтому вы, вероятно, активировали опциюобрабатывать все предупреждения как ошибки.Для проверки щелкните правой кнопкой мыши на целевых свойствах, затем разверните «C / C ++» и перейдите к общим свойствам, как показано на следующих снимках:

enter image description here

enter image description here

Если мои предположения неверны, добавьте необходимую информацию (компилятор / ОС / как вы получили повышение, правильно ли он скомпилирован, ....), чтобы мы моглинайдите лучший ответ.

РЕДАКТИРОВАТЬ: поскольку вы заявили, что не меняли параметры компиляции, вам следует поискать исходный код для # pragma warninng (error: ....) где-то в вашемисходный код.

...