Ошибка инструментов компоновщика при настройке и сборке wxWidgets Visual Studio 2017 - PullRequest
0 голосов
/ 15 марта 2020

Невозможно настроить wxwidgets в Visual Studio 2017.

Выполните следующие действия.

  • С веб-сайта wxwidgets загружен файл исходного кода 'Windows 7Z', версия 3.1. 3.
  • Запустите wx_vc15.sln из build -> msw в Visual Studio 2017.
  • Создайте Debub, DLL Debug, DLL Release, Relese успешно с платформой x86.

В Microsoft Visual Studio 17 V15.9.20 создан пустой проект. Добавлена ​​ простая программа wxWidgets.

В project properties внесены следующие изменения - В All Configurations с платформой Win32, Установите Configuration Properties -> Character Set в Use Unicode Character Set

  • C/C++ -> Additional Include Directories -> $(WXWIN)\include\msvc;$(WXWIN)\include;
  • C/C++ -> Preprocessor -> Preprocessor Defenitions -> __WXMSW__;WXUSINGDLL;_DEBUG
  • Linker -> Additional Library Directories -> $(WXWIN)\lib\vc_dll

Произведены эти изменения в Environment Variables

  • В User variables
    • Добавьте новую переменную WXWIN и установите для нее значение C:\Users\varun\Desktop\workspace\wxWidgets-3.1.3.
    • Путь -> C:\Users\varun\Desktop\workspace\wxWidgets-3.1.3\lib\vc_dll.

В свойствах проекта Release Конфигурации, внесшие эти изменения C/C++ -> Preprocessor -> Preprocessor Defenitions -> __WXMSW__;WXUSINGDLL;NDEBUG;

Нет ошибки кода, но Linker Tools Error

Error (active)  E1097   unknown attribute "no_init_all" WxWidgets_Application_5 C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winnt.h  

Error LNK2019 unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) WxWidgets_Application_3 C:\Users\varun\Desktop\workspace\visual_studio_projects_2017\WxWidgets_Application_3\WxWidgets_Application_3\MSVCRTD.lib(exe_main.obj)

Error LNK1120 1 unresolved externals WxWidgets_Application_3 C:\Users\varun\Desktop\workspace\visual_studio_projects_2017\WxWidgets_Application_3\Debug\WxWidgets_Application_3.exe 

Что может пошло не так?

1 Ответ

1 голос
/ 15 марта 2020

Первая ошибка, которую вы показываете, вовсе не ошибка, а просто какой-то шум IntelliSense, см. отчет об ошибке . Настоящей ошибкой является невозможность найти _main, что, по-видимому, указывает на то, что вы создаете консольное приложение (см. Параметр Properties\Linker\System\SubSystem), поэтому его следует исправить, просто превратив его в приложение Windows.

Кроме того, хотя я не вижу ничего действительно неправильного в вашей настройке, я все равно рекомендую вместо этого использовать официальные инструкции 1008 *. Примечательно, что в вашем случае это должно быть просто:

Если вы используете MSVS 2010 или более позднюю IDE для построения вашего проекта, просто добавьте лист свойств wxwidgets.props во все ваши проекты, используя WxWidgets. Вам не нужно больше ничего делать.

...