Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: скомпилировать программу MinGW+WxWidgets  (Прочитано 2588 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн xmarat

  • Автор темы
  • Участник
  • *
  • Сообщений: 101
    • Просмотр профиля
Народ. У меня такая проблема. Нужно скомпилировать программу для всех платформ. Для Linux скомпилил, норм. Для Windows не могу. Поставил MinGW и WxWidgets. Пробую скомпилить консольную Hello World, норм. Начинаю компилить с wxWidgets, ошибки. Не находил файлы. Закинул WxWidgets в MinGW там сделал ./configure, make, make install. Компилю програмку. Ошибок нет. Запускаю ее. Она ругается на отсутствующий wxbase28_gcc_custom.dll. На офф сайте wxWidgets примеры работают без всяких dll'ок. Может кто нить сталкивался с этим?
Еще один вопрос: можно ли как нить в Linux скомпилить программу для Windows?
« Последнее редактирование: 27 Января 2011, 21:33:19 от xmarat »

Оффлайн mkarasik

  • Участник
  • *
  • Сообщений: 163
    • Просмотр профиля
Re: скомпилировать программу MinGW+WxWidgets
« Ответ #1 : 27 Января 2011, 22:36:52 »
Так компиляция вроде нормално у тебя прошла. У тебя проблемма в пути. У тебя путь на ДЛЛ от вх.. не прописан в Windowsе.
Или прописан, но нужно перегрузиться.

Оффлайн xmarat

  • Автор темы
  • Участник
  • *
  • Сообщений: 101
    • Просмотр профиля
Re: скомпилировать программу MinGW+WxWidgets
« Ответ #2 : 27 Января 2011, 22:53:21 »
Меня интерисует зачем он просит dll'ку? Вот к примеру я взял этот пример ftp://biolpc22.york.ac.uk/pub/binary/wxWidgets-WidgetsDemo-Windows.zip
Запускаю widgets.exe, нормально запустилось, ничего не спросило. Скомпилил его исходники в widgets2.exe. Этот просит длл. Та же самая программа, но та, которую я скомпилировал просит длл.

Онлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5589
  • Все по палатам!
    • Просмотр профиля
Re: скомпилировать программу MinGW+WxWidgets
« Ответ #3 : 27 Января 2011, 22:59:26 »
Значит при компиляции линковка динамическая... Сделай статическую, если есть статические библиотеки
Извините, я все еще учусь

Оффлайн xmarat

  • Автор темы
  • Участник
  • *
  • Сообщений: 101
    • Просмотр профиля
Re: скомпилировать программу MinGW+WxWidgets
« Ответ #4 : 27 Января 2011, 23:19:48 »
Решил проблему перекомпиляцией wxWidgets c новыми параметрами:

./configure --enable-optimise --enable-stl --enable-unicode --disable-threads --enable-static --disable-shared --enable-monolithic
make
make install

Всем спасибо за помошь.

Пользователь решил продолжить мысль 28 Января 2011, 16:09:20:
Возник еще вопрос. Скомпилированная программа на другом компьютере просит libgcc_s_dw2-1.dll. Что нужно делать, чтоб этого не было?

Пользователь решил продолжить мысль 29 Января 2011, 00:15:08:
После проб и ошибок выяснил что нужны параметры -static-libgcc и -static-libstdc++ Пример решения:
g++ simple.cpp static-libgcc -static-libstdc++ `wx-config --libs` `wx-config --cxxflags` -o simple.exe
Единственное чем не доволен, так это то что скомпилированная программа не поддерживает системные стили, для пояснения привожу скрин:



Может кто нить знает как включить стили?

Пользователь решил продолжить мысль 29 Января 2011, 22:48:10:
Проблема решилась добавлением манифеста. Рядом с программой создал файл <имя файла>.exe.manifest :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
    name="XPManifest"
    processorArchitecture="x86"
    version="1.0.0.0"
    type="win32"/>
<description>Windows Shell</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="x86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

Тема закрыта.
« Последнее редактирование: 29 Января 2011, 22:48:10 от xmarat »

 

Страница сгенерирована за 0.028 секунд. Запросов: 25.