Я покажу, как скомпилировать минимальный образец wxWidgets с MinGW и eclipse. Прежде всего, я настоятельно рекомендую вам собрать как отладочную, так и выпускную версию библиотеки wxWidgets. Эти направления предполагают, что это так. Я не специалист по затмению, поэтому не могу гарантировать, что это лучшие направления. Эти указания работают для меня, но исправления и улучшения приветствуются.
Здесь много, много шагов. Но если вы получаете рабочий проект с минимальным образцом, вы можете скопировать проект и изменить файлы кода, чтобы использовать его для дальнейших проектов.
Прежде чем мы что-то еще сделаем, определите переменную среды WXWIN
в eclipse если это еще не определено. В меню выберите Window-> Preferences-> C / C ++ -> Build-> Environment и нажмите кнопку добавления, чтобы добавить переменную.
Самый простой способ создать минимальный пример, который поставляется с библиотекой, - это использовать командную строку. Для этого просто перейдите в папку WXWIN \ samples \ minimal и введите точно такую же команду, которую вы использовали для создания библиотеки. Поскольку приведенная выше команда была mingw32-make -f makefile.gcc SHARED=0 UNICODE=1 MONOLITHIC=0 BUILD=release
, это произойдет, если в оболочке будут выполняться следующие команды:
windres --use-temp-file -i../../samples/sample.rc -ogcc_mswu\minimal_sample_rc.o --define __WXMSW__ --define NDEBUG --define _UNICODE --include-dir .\..\..\lib\gcc_lib\mswu --include-dir ./../../include --include-dir . --include-dir ./../../samples --define NOPCH
g++ -c -o gcc_mswu\minimal_minimal.o -O2 -mthreads -DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -I.\..\..\lib\gcc_lib\mswu -I.\..\..\include -W -Wall -I. -I.\..\..\samples -DNOPCH -Wno-ctor-dtor-privacy -MTgcc_mswu\minimal_minimal.o -MFgcc_mswu\minimal_minimal.o.d -MD -MP minimal.cpp
g++ -o gcc_mswu\minimal.exe @gcc_mswu\minimal.exe.rsp -mthreads -L.\..\..\lib\gcc_lib -Wl,--subsystem,windows -mwindows -lwxmsw31u_core -lwxbase31u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme
Если мы сделаем ту же команду с build=debug
, вместо этого мы получим аналогичные команды только с несколько отличий:
windres --use-temp-file -i../../samples/sample.rc -ogcc_mswud\minimal_sample_rc.o --define __WXMSW__ --define _UNICODE --include-dir .\..\..\lib\gcc_lib\mswud --include-dir ./../../include --include-dir . --include-dir ./../../samples --define NOPCH
g++ -c -o gcc_mswud\minimal_minimal.o -g -O0 -mthreads -DHAVE_W32API_H -D__WXMSW__ -D_UNICODE -I.\..\..\lib\gcc_lib\mswud -I.\..\..\include -W -Wall -I. -I.\..\..\samples -DNOPCH -Wno-ctor-dtor-privacy -MTgcc_mswud\minimal_minimal.o -MFgcc_mswud\minimal_minimal.o.d -MD -MP minimal.cpp
g++ -o gcc_mswud\minimal.exe @gcc_mswud\minimal.exe.rsp -g -mthreads -L.\..\..\lib\gcc_lib -Wl,--subsystem,windows -mwindows -lwxmsw31ud_core -lwxbase31ud -lwxtiffd -lwxjpegd -lwxpngd -lwxzlibd -lwxregexud -lwxexpatd -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme
Чтобы построить пример с помощью eclipse, мы хотим, чтобы он выполнял примерно те же команды, учитывая небольшие различия между конфигурациями отладки и выпуска. Выберите Файл-> Создать-> Проект C / C ++-> Управляемая сборка C ++. Введите имя проекта, выберите MinGW G CC, убедитесь, что тип проекта - Исполняемый / Пустой проект, и нажмите кнопку завершения sh.
Теперь добавьте файл в проект. Вы можете либо
- Выбрав Файл-> Новый-> Исходный файл, ввести имя файла, такое как «минимальный. cpp» или как хотите, чтобы он назывался, и нажать «Fini * 1248». *. Новый файл автоматически откроется в затмении. Выберите и удалите все содержимое. В текстовом редакторе откройте файл WXWIN \ samples \ minimal \ minimal. cpp, выберите и скопируйте все содержимое, вставьте его в файл, только что созданный в eclipse, и сохраните файл.
- File-> Импорт-> Общие-> Файловая система. Нажмите следующую кнопку. Затем выберите \ samples \ minimal для каталога. Затем выберите файл минимальный. cpp из списка файлов, которые это вызывает. Наконец, нажмите кнопку Fini sh.
В любом случае, в проекте должен быть файл с именем minimal. cpp. Чтобы создать этот файл, необходимо изменить несколько настроек. В меню выберите Проект-> Свойства-> Сборка C / C ++-> Настройки
Конфигурации отладки и выпуска будут созданы, но приложение еще не завершено. Первое, что было сделано при создании минимального приложения в командной строке:
windres --use-temp-file ...
Согласно этой ссылке , eclipse просто не поддерживает создание файлов ресурсов, поэтому нам нужно обработать это вручную ,
- Скопируйте файлы WXWIN \ samples \ sample.r c и WXWIN \ samples \ sample.ico в папку проекта. (Папка проекта - это папка, содержащая минимальный файл. cpp, созданный ранее). Кроме того, вы можете использовать File-> Import-> ... для импорта файлов в проект.
Now go назад Project-> Properties-> C / C ++ Build-> Settings- > Этапы сборки.
- Для шагов предварительной сборки
- для конфигурации отладки введите
windres --use-temp-file -i"${ProjDirPath}/sample.rc" -o"${CWD}\minimal_sample_rc.o" --define __WXMSW__ --define _UNICODE --include-dir ${WXWIN}\lib\gcc_lib\mswud --include-dir ${WXWIN}\include --define NOPCH
- для конфигурации выпуска введите
windres --use-temp-file -i"${ProjDirPath}\sample.rc" -o${CWD}\minimal_sample_rc.o --define __WXMSW__ --define NDEBUG --define _UNICODE --include-dir ${WXWIN}\lib\gcc_lib\mswu --include-dir ${WXWIN}\include --define NOPCH
Затем вернитесь на вкладку «Настройки инструмента»:
- Для MinGW C ++ Linker:
- Для Разного,
- для всех конфигураций
- для Других объектов, добавьте
${CWD}\minimal_sample_rc.o
Эти 2 дополнительных шага заставят eclipse скомпилировать файл ресурсов и связать ресурсы с конечным исполняемым файлом.