crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Компиляция GTK под Windows
Andra
  опции профиля:
сообщение 28.11.2010, 1:45
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 28.11.2010
Пользователь №: 2225

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте. Хочу скомпилировать свои проекты, написанные на GTK из-под Linux под Windows.
Поставил MinGW, скачал gtk+-bundle_2.22.0-20101016_win32, а не работает(
Простые проекты не на GTK, а на чистом Си компилирует на ура.
Использую gtk, cairo, threads
Ошибка вообще не понятная :(
Прикрепленное изображение

Помогите! плиз
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.11.2010, 1:52
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


ошибка типовая - линкеру что-то не понятно, обычно когда каких-то библиотек не хватает
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andra
  опции профиля:
сообщение 28.11.2010, 1:58
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 28.11.2010
Пользователь №: 2225

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 28.11.2010, 1:52) *
ошибка типовая - линкеру что-то не понятно, обычно когда каких-то библиотек не хватает


А как исправить?
Делаю все по порядку
1) Устанавливаю mingw-get-inst-20101030.exe
2) Распаковываю gtk+-bundle_2.22.0-20101016_win32. Заменяю все файлы в папке MinGW. Или надо только дописывать недостающие?
3) В папку c:\FILES\MinGW\msys\1.0\home\Andrey\ складываю файл моего проекта
4) Запускаю c:\FILES\MinGW\msys\1.0\msys.bat
5) Там пишу gcc 1.c `pkg-config --cflags gtk+-2.0`
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andra
  опции профиля:
сообщение 28.11.2010, 2:41
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 28.11.2010
Пользователь №: 2225

Спасибо сказали: 0 раз(а)




Репутация:   0  


ухх, ну я совсем замучался, все варианты перепробовал, никак не пойму почему не работает...
Может есть какие еще варианты или я что-то не так делаю?
P.S. у меня есть Visual Studio 2010 pro, может быть там можно что-нибудь сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 28.11.2010, 10:52
Сообщение #5


Профессионал
*****

Группа: Модератор
Сообщений: 1593
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 218 раз(а)




Репутация:   12  


а ты проверял, что у тебя pkg-config --cflags gtk+-2.0 выдаёт нужные результаты? может, в путях не прописано что-то и там пусто вообще.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.11.2010, 13:03
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Andra @ 28.11.2010, 3:58) *
2) Распаковываю gtk+-bundle_2.22.0-20101016_win32. Заменяю все файлы в папке MinGW. Или надо только дописывать недостающие?
вот это что-то вообще не то. папку компилятора трогать не надо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Andra
  опции профиля:
сообщение 2.12.2010, 20:47
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 28.11.2010
Пользователь №: 2225

Спасибо сказали: 0 раз(а)




Репутация:   0  


я разобрался, компилировать он хочет только одним способом. Вот он:
1) Пишем makefile и помещаем его в папку home
2) Его содержимое:
CC=gcc
CFLAGS=`pkg-config --cflags --libs gtk+-2.0`
CFLAGS+=-mwindows
SRC=name.c
OBJ=$(SRC:.c=.o)
OUT=name.exe

all: $(OUT)
    rm $(OBJ) #Remove .o

$(OBJ) :
    $(CC) $(SRC) $(CFLAGS) -c #Create .o

$(OUT) : $(OBJ)
    $(CC) $(OBJ) $(CFLAGS) -o $@ #Link .o

3) В msys.bat пишем make и все работает
И делается это только так. Файл становится зависимым от dll библиотек из папки bin и без них не запускается.
Т.е. теперь надо их всегда складывать в папку к моей программе или можно от этого как-нибудь избавиться?)
И еще интересно почему не сработал обычный способ компиляции gcc name.c `pkg-config --cflags --libs gtk+-2.0`?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 2.12.2010, 21:17
Сообщение #8


Профессионал
*****

Группа: Модератор
Сообщений: 1593
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 218 раз(а)




Репутация:   12  


а -mwindows у тебя был указан?

gtk можно собрать статически и линковать в виде статических библиотек. тогда не будет зависимостей. но файл, соответственно, будет жирный.

Сообщение отредактировал Iron Bug - 2.12.2010, 21:22
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_Andra__*
сообщение 26.4.2011, 20:43
Сообщение #9





Гости








    


Цитата(Iron Bug @ 2.12.2010, 21:17) *
gtk можно собрать статически и линковать в виде статических библиотек. тогда не будет зависимостей. но файл, соответственно, будет жирный.


Можно поподробней, как это сделать?
И еще вопрос, как добавить к окну соответствующее оформление Windows, чтобы было не в стиле 98 windows?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_sunny_*_*
сообщение 3.5.2011, 20:21
Сообщение #10





Гости








    


Чтобы применить тему в стиле Windows нужно в файле C:\GTK\etc\gtk-2.0\gtkrc [У меня GTK стоит в папке C:\GTK]
написать:
gtk-theme-name = "MS-Windows"


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.12.2019, 6:01