2016-03-06 6 views
0

Я чувствую себя немного глупым, но я не могу построить новые wxWidgets. Я хочу использовать codelite + MinGW + WxWidgets, поэтому я загрузить последние версии:Невозможно построить новые wxWidgets. Что мне делать?

CodeLite 9.1.3 (http://downloads.codelite.org/downloads.php?windows_weekly_64)

Установщик сделает меня скачать настройки TDM-GCC-64 и установить его.

Тогда я скачал WxWidgets-3.1.0 (https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.0/wxMSW-3.1.0-Setup.exe)

Codelite обнаружил компилятор, теперь я должен построить WxWidgets, но страницы я уже гугл для (WXw вики, codelite документов и т.д.) относится к папкам и файлам, которые не существуют. Все установлено в папках по умолчанию, и я не ПК noob, хотя, возможно, слишком привык к таким средам, как C++ Builder и т. Д.

Что мне теперь делать?


UPDATE

Я сожалею, я не могу быть ясно. Позвольте мне попробовать еще раз с выходом:

C:\wxWidgets-3.1.0\build\msw>mingw32-make -j8 -f Makefile.gcc SHARED=1 UNICODE=1 BUILD=release VENDOR=cl CXXFLAGS="-fno-keep-inline-dllexport -std=c++11" MONOLITHIC=1 
if not exist gcc_mswudll mkdir gcc_mswudll 
if not exist ..\..\lib\gcc_dll mkdir ..\..\lib\gcc_dll 
if not exist ..\..\lib\gcc_dll\mswu\wx\setup.h copy ..\..\include\wx\msw\setup.h ..\..\lib\gcc_dll\mswu\wx\setup.h 
gcc -c -o gcc_mswudll\wxregex_regcomp.o -O2 -mthreads -DHAVE_W32API_H -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -D__WXMSW__ -D_UNICODE -MTgcc_mswudll\wxregex_regcomp.o -MFgcc_mswudll\wxre 
gex_regcomp.o.d -MD -MP ../../src/regex/regcomp.c 
Impossibile trovare il percorso specificato. 
     0 file copiati. 
Makefile.gcc:5728: recipe for target '..\..\lib\gcc_dll\mswu\wx\setup.h' failed 
mingw32-make: *** [..\..\lib\gcc_dll\mswu\wx\setup.h] Error 1 
mingw32-make: *** Waiting for unfinished jobs.... 
In file included from ..\..\include/wx/defs.h:20:0, 
       from ../../src/regex/regcustom.h:39, 
       from ../../src/regex/regguts.h:38, 
       from ../../src/regex/regcomp.c:33: 
..\..\include/wx/platform.h:136:22: fatal error: wx/setup.h: No such file or directory 
#include "wx/setup.h" 
        ^
compilation terminated. 
Makefile.gcc:5778: recipe for target 'gcc_mswudll\wxregex_regcomp.o' failed 
mingw32-make: *** [gcc_mswudll\wxregex_regcomp.o] Error 1 

Я могу ошибаться, но мне кажется, что эти две линии

if not exist ..\..\lib\gcc_dll mkdir ..\..\lib\gcc_dll 
if not exist ..\..\lib\gcc_dll\mswu\wx\setup.h copy ..\..\include\wx\msw\setup.h ..\..\lib\gcc_dll\mswu\wx\setup.h 

показывает, что есть проблема.

Теперь я сделал каталог самостоятельно и скопировал setup.h. У меня дома он еще не строился, но я не могу вспомнить, почему, пока прямо сейчас, в офисе, он начинает строить , но закончился этим:

...... 
g++ -c -o gcc_mswudll\wxscintilla_LexCOBOL.o -O2 -mthreads -DHAVE_W32API_H -DNDEBUG -I..\..\src\stc\scintilla\include -I..\..\src\stc\scintilla\lexlib -I..\..\src\stc\scintilla\src -D__WX__ -DSCI_LE 
XER -DLINK_LEXERS -I..\..\lib\gcc_dll\mswu -I..\..\include -D__WXMSW__ -D_UNICODE -fno-keep-inline-dllexport -std=c++11 -MTgcc_mswudll\wxscintilla_LexCOBOL.o -MFgcc_mswudll\wxscintilla_LexCOBOL. 
o.d -MD -MP ../../src/stc/scintilla/lexers/LexCOBOL.cxx 
In file included from c:\sviluppo\tools\mingw\lib\gcc\mingw32\4.8.1\include\c++\cmath:44:0, 
       from c:\sviluppo\tools\mingw\lib\gcc\mingw32\4.8.1\include\c++\random:38, 
       from c:\sviluppo\tools\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stl_algo.h:65, 
       from c:\sviluppo\tools\mingw\lib\gcc\mingw32\4.8.1\include\c++\algorithm:62, 
       from ../../src/stc/scintilla/lexers/LexBibTeX.cxx:18: 
c:\sviluppo\tools\mingw\include\math.h: In function 'float hypotf(float, float)': 
c:\sviluppo\tools\mingw\include\math.h:635:30: error: '_hypot' was not declared in this scope 
{ return (float)(_hypot (x, y)); } 
          ^
g++ -c -o gcc_mswudll\wxscintilla_LexCoffeeScript.o -O2 -mthreads -DHAVE_W32API_H -DNDEBUG -I..\..\src\stc\scintilla\include -I..\..\src\stc\scintilla\lexlib -I..\..\src\stc\scintilla\src -D__WX__ - 
DSCI_LEXER -DLINK_LEXERS -I..\..\lib\gcc_dll\mswu -I..\..\include -D__WXMSW__ -D_UNICODE -fno-keep-inline-dllexport -std=c++11 -MTgcc_mswudll\wxscintilla_LexCoffeeScript.o -MFgcc_mswudll\wxscint 
illa_LexCoffeeScript.o.d -MD -MP ../../src/stc/scintilla/lexers/LexCoffeeScript.cxx 
Makefile.gcc:6183: recipe for target 'gcc_mswudll\wxscintilla_LexBibTeX.o' failed 
mingw32-make: *** [gcc_mswudll\wxscintilla_LexBibTeX.o] Error 1 
mingw32-make: *** Waiting for unfinished jobs.... 

C:\wxWidgets-3.1.0\build\msw> 

Итак, мы по-прежнему не строим wxWidgets.


UPDATE:

попытался сделать отладочную сборку, как это предлагается в ответ. это выход:

C:\wxWidgets-3.1.0\build\msw> mingw32-make -j8 -f Makefile.gcc SHARED=1 UNICODE= 
1 BUILD=debug VENDOR=cl CXXFLAGS="-fno-keep-inline-dllexport -std=c++11" MONOLIT 
HIC=1 
if not exist gcc_mswuddll mkdir gcc_mswuddll 
if not exist ..\..\lib\gcc_dll\mswud mkdir ..\..\lib\gcc_dll\mswud 
if not exist ..\..\lib\gcc_dll\mswud\wx\setup.h copy ..\..\include\wx\msw\setup. 
h ..\..\lib\gcc_dll\mswud\wx\setup.h 
gcc -c -o gcc_mswuddll\wxregex_regcomp.o -g -O0 -mthreads -DHAVE_W32API_H -DNDE 
BUG -I..\..\include -I..\..\lib\gcc_dll\mswud -D__WXMSW__ -D_UNICODE -MTgcc_m 
swuddll\wxregex_regcomp.o -MFgcc_mswuddll\wxregex_regcomp.o.d -MD -MP ../../src/ 
regex/regcomp.c 
Impossibile trovare il percorso specificato. 
     0 file copiati. 
Makefile.gcc:5728: recipe for target '..\..\lib\gcc_dll\mswud\wx\setup.h' failed 

mingw32-make: *** [..\..\lib\gcc_dll\mswud\wx\setup.h] Error 1 
mingw32-make: *** Waiting for unfinished jobs.... 
In file included from ..\..\include/wx/defs.h:20:0, 
       from ../../src/regex/regcustom.h:39, 
       from ../../src/regex/regguts.h:38, 
       from ../../src/regex/regcomp.c:33: 
..\..\include/wx/platform.h:136:22: fatal error: wx/setup.h: No such file or dir 
ectory 
compilation terminated. 
Makefile.gcc:5778: recipe for target 'gcc_mswuddll\wxregex_regcomp.o' failed 
mingw32-make: *** [gcc_mswuddll\wxregex_regcomp.o] Error 1 

Файл есть, поэтому я не знаю, в чем проблема ...

C:\wxWidgets-3.1.0\build\msw>dir ..\..\src\regex\regcomp.* 
Il volume nell'unità C è 1TBWD-1-WIN7 64 
Numero di serie del volume: A26D-1E3B 

Directory di C:\wxWidgets-3.1.0\src\regex 

28/02/2016 22:33   59.702 regcomp.c 
       1 File   59.702 byte 
       0 Directory 74.986.561.536 byte disponibili 

C:\wxWidgets-3.1.0\build\msw> 

ответ

1

Установщик заставить меня скачать TDM-GCC-64 установите и установите его.

CodeLite предлагает ...

Что я должен делать?

Построить WxWidgets, как это:

После построения WxWidgets, вам необходимо установить 2 переменные окружения в CodeLite из: (Настройки-> переменные среды):

WXCFG=gcc_dll\mswu WXWIN=\path\to\wxWidgets

Если вы пытаетесь постройте конфигурацию вашего проекта в CodeLite Debug, вы должны сделать ОДИН из

Построить версию WxWidgets debug (это то, что CodeLite будет искать)

ИЛИ

Удалить --debug флаг из опций компилятора и компоновщика:

  1. Project Settings-> от компилятора> C++ Параметры компилятора и удалить часть, которая говорит --debug=yes, или просто --debug
  2. Настройки проекта-> Линкер-> Параметры компоновщика и удалить часть, которая гласит --debug=yes или просто --debug

EDIT: Update CodeLite в вики страницу ссылка

EDIT2: Добавлено PATH инструкции к ответу

EDIT3: Добавлены инструкции о том, как установить переменные окружения WXCFG и WXWIN

Eran

+0

Файл .7z содержит точные файлы установщика. Связанная страница - это то, что я пытался отслеживать. - в папке \ path \ to \ wxwidgets \ lib \ gcc_dll нет файлов (gcc_dll был создан командой build, но в ней ничего нет) - только файлы setup.h находятся в папке «include». Я имею в виду: я был точно с тем, что вы сказали мне сделать, прежде чем открывать этот вопрос :) – Parduz

+0

Существует большой комментарий к http://codelite.org/Developers/BuildingWxWidgetsWin#toc2, начинающийся с «Если файл \ путь \ \ wxwidgets \ lib \ gcc_dll \ mswu \ wx \ setup.h .... ", в основном то, что он говорит:« Запустите сборку, подождите несколько секунд, а затем отмените ее », и вы найдете' setup.h 'file – Eran

+0

Я обновил свой ответ: я добавил новый раздел в wiki (ссылка обновлена ​​в моем исходном ответе) - так как вы не планируете создавать CodeLite, вы можете пропустить некоторые этапы - страница вики обновлена ​​с новым разделом« Построение wxWidgets для общих целей » – Eran

1

Что касается сегодняшнего дня, то сборка забывает создать две директории. Решение состоит в том, чтобы сделать их самими собой.

Так что мое решение идти в папку wxWidget и введите:

C:\wxWidgets-3.1.0>mkdir lib\gcc_dll\mswu\wx\ 
C:\wxWidgets-3.1.0>copy include\wx\msw\setup.h lib\gcc_dll\mswu\wx\setup.h 
1

Существует ошибка в makefile.gcc при использовании параллельного Марка (т.е. с -j8). Обходной путь

mingw32-make <all the same options> setup_h 

Сначала следует нормальная команда make.Другой альтернативой является использование сборки на основе конфигурации, которая не страдает от этой проблемы.

Проблема с компиляцией с _hypot() связана с ошибкой компилятора, и мы попытались обойти ее в this commit, но, видимо, этого было недостаточно. Вы должны report проблемы с более подробной информацией, включая версию используемого вами компилятора и параметры, переданные для создания.

0

У меня была аналогичная проблема, с помощью этой команды

mingw32-сделать -j8 -f Makefile.gcc ОБЩИМ = 1 UNICODE = 1 BUILD = высвобождать ПОСТАВЩИКА = Сl CXXFLAGS = "- FnO-держать-рядный -dllexport -std = C++ 11" монолитный = 1

Проблема -j8, который считает количество физических процессоров, прежде чем процесс сборки начинается.

Попробуйте -jN (заменить N на значении NUMBER_OF_PROCESSORS)

mingw32-марка смотрит на фактическое количество физических процессоров, гипер нарезкой или виртуальные процессоры не считают. Если, однако, ваша машина имеет меньше назначенных физических процессоров, она вызывает ошибку.

Вы также можете попробовать поставить -j в поле аргументов make. Это говорит Make, чтобы порождать столько процессов компиляции, сколько возможно, если у вас достаточно ОЗУ и процессора для обработки, это должно быть быстрее, чем один компилятор.

Я успешно попробовал с -j4 на i7, который имеет физических процессоров.

(Примечание: когда Hyper-Threading включена i7 показывает виртуальных процессоров)

Нечто подобное упоминается Orient here

Лучше объяснить Брендан Шанкс упоминается here.

+0

Проблема действительно связана с использованием '-jN' как [уже упомянутого] (https://stackoverflow.com/a/35867279/15275), но объяснение просто совершенно неверно на многих уровнях (mingw32-make is а не компилятор, обнаружение номера ядра вообще не вошло в игру, все логические ядра были бы подсчитаны, если бы они были, и проблема могла бы отлично справиться с '-j4' тоже, это немного меньше шансов на успех). –

+0

Я знаю, что проблема «jN» уже упоминалась, но не было четкого обходного решения или решения непосредственной проблемы. Единственная причина, по которой я написал решение, заключалась в том, чтобы помочь людям справиться с этой проблемой с легкостью. Моя пробная версия и ошибка показывают, что я потерпел неудачу с 'j8', но одна и та же команда работала с 'j4'. Взгляните на это решение [link] (https://stackoverflow.com/a/12912354/6391016), в котором четко упоминается нечто подобное. –

+0

Обходной путь для этой проблемы был указан в [уже связанном ответе] (https://stackoverflow.com/a/35867279/15275) чуть выше. –

 Смежные вопросы

  • Нет связанных вопросов^_^