Форум по операционной системе GNU/Linux и свободному программному обеспечению
Текущее время: 18 ноя 2018, 04:39

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
Непрочитанное сообщениеДобавлено: 22 мар 2013, 13:40 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11297
Откуда: Харьков
Виктория писал(а):
А зачем нужно была Visual Studio? Можно было провести сравнение, используя mingw и boost. Или это нужно для чистоты эксперимента?


Возвращаясь к этому вопросу:
- меня интересовало не гипотетическое использование Wine (это я и так знаю ... да и с этим вопросом лучше - к игрунам ;-) )...
- а те новые свойства (и даже новые качества), которые обретёт в Wine реальный промышленный проект (а ко мне и обратились с ревизией существующего проекта);
- а реальные промышленные проекты (крупные) если делаются для Windows, то делаются в MS Visual Studio (во всех прочих IDE и tools делаются студенческие курсовые проекты ;-) ).

Вот поэтому такой выбор.


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Непрочитанное сообщениеДобавлено: 22 мар 2013, 13:46 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11297
Откуда: Харьков
Olej писал(а):
10. После этого успешно собирается и проект example2 (для проверки) и проект randwr (перенесено из Linux, из-за которого всё и закрутилось).


В принципе (по итогу), всё это не так много работы ... на всё, начиная с поиска что и откуда скачать, и закончив сборкой Linux-кода под MS Visual Studio, у меня ушёл 1 день работы ... вчера, к глубокой ночи :-( , проект randwr собрался. Это при том, что я очень давно не был в Windows и не ориентируюсь в его инструментах ... хотя очень хорошо представляю чего я хочу получить ;-) .

Так что во всём этом нет ничего "военного", и всяк желающий может повторить такой вот перенос проекта randwr, который вложен в сообщение пару дней ранее.


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Непрочитанное сообщениеДобавлено: 22 мар 2013, 21:04 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11297
Откуда: Харьков
Теперь, да ещё слегка (не- ;-) )разобравшись с локализациями Windows можно собрать переносимое приложение randwr, которое можно собрать хоть в Linux, хоть в Windows:
Код:
C:\Documents and Settings\olej\Мои документы\Visual Studio 2010\Projects\randwr\Debug>randwr.exe
Запуск:  randwr.exe файл [число записей] [размер блока записи[{K,M}]]

А Windows-ный randwr.exe можно запускать в Linux под Wine и т.д.


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Непрочитанное сообщениеДобавлено: 22 мар 2013, 21:22 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11297
Откуда: Харьков
Olej писал(а):
А Windows-ный randwr.exe можно запускать в Linux под Wine и т.д.


Примерно вот так :lol: :lol: :lol: :
Код:
bash-4.2$ dd if=/dev/zero of=./xxx2 bs=1M count=20
20+0 записей считано
20+0 записей написано
 скопировано 20971520 байт (21 MB), 0,04983 c, 421 MB/c


Код:
bash-4.2$ ./randwr ./xxx2 1000 1k
длина файла 20971520, блоков в файле 20480
продолжительность выполнения случайной записи:
 0.004766s wall, 0.000000s user + 0.000000s system = 0.000000s CPU (n/a%)
в случайные позиции файла записано 1000 блоков длиной 1024 байт каждый
из 20480 блоков файла модифицировано 980 блоков
длина файла после записи: 20971520


Код:
bash-4.2$ wine randwr .\xxx2 1000 1k
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:msvcp90:_Locinfo__Locinfo_ctor_cat_cstr (0x33f2d8 63 ) semi-stub
wine: Unhandled page fault on read access to 0x0000000f at address 0x4010d0 (thread 0009), starting debugger...

:cry:


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Непрочитанное сообщениеДобавлено: 23 мар 2013, 00:36 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11297
Откуда: Харьков
Olej писал(а):
можно собрать переносимое приложение randwr, которое можно собрать хоть в Linux, хоть в Windows


По крайней мере, Windows приложение переносимое (текстуально неизменное компилируется точно то же, что и в Linux), и результат выполнения подобен тому (по форме), что и показанный под Linux:
Код:
C:\Documents and Settings\olej\Мои документы\Visual Studio 2010\Projects\randwr\Release>randwr.exe
data 100000 10k
длина файла 2097156, блоков в файле 204
продолжительность выполнения случайной записи:
 2.409671s wall, 1.968750s user + 0.437500s system = 2.406250s CPU (99.9%)
в случайные позиции файла записано 100000 блоков длиной 10240 байт каждый
из 204 блоков файла модифицировано 204 блоков
длина файла после записи: 2097156

С той разницей, что каждое приложение работает со своей, совершенно разными, файловой системой и т.д.


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Непрочитанное сообщениеДобавлено: 23 мар 2013, 02:30 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11297
Откуда: Харьков
Olej писал(а):
Код:
bash-4.2$ wine randwr .\xxx2 1000 1k
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:msvcp90:_Locinfo__Locinfo_ctor_cat_cstr (0x33f2d8 63 ) semi-stub
wine: Unhandled page fault on read access to 0x0000000f at address 0x4010d0 (thread 0009), starting debugger...

:cry:


Для того, чтобы запустить созданные *.exe приложения - в Wine не хватает библиотек MS VC 10.

Доставить их можно так:

- берём библиотеки из VC:
Код:
bash-4.2$ ls -l msvc*
-rw-r--r-- 1 olej olej  743248 марта 23 00:01 msvcp100d.dll
-rw-r--r-- 1 olej olej  421200 марта 23 00:02 msvcp100.dll
-rw-r--r-- 1 olej olej 1498960 марта 23 00:01 msvcr100d.dll
-rw-r--r-- 1 olej olej  770384 марта 23 00:02 msvcr100.dll


- и копируем их в каталог Wine:
Код:
bash-4.2$ pwd
/home/olej/.wine/drive_c/windows/system32


- и в приложении Wine Configuration (winecfg) указываем, что эти библиотеки нужно взять сторонние (скопированные):
Вложение:
Wine_004.png
Wine_004.png [ 11.28 КБ | Просмотров: 5951 ]


Проверяем всё на тех же example*, которые сделаны ещё при интеграции Boost, вот оно замечательно играет под Wine:
Код:
bash-4.2$ wine example.exe
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
1 2 3
3 6 9
fixme:console:CONSOLE_DefaultHandler Terminating process 23 on event 0

Код:
bash-4.2$ wine example3.exe
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
Subject: Re: 123 456
123 456
fixme:console:CONSOLE_DefaultHandler Terminating process 29 on event 0


P.S. В архиве:
- библиотеки DLL для доустановки в Wine
- и *.exe приложения
- и Linux проект с Makefile сборки тех же приложений example* из неизменных кодов С++ нативно в Linux


Вложения:
win32.tgz [1.49 МБ]
Скачиваний: 463
Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Непрочитанное сообщениеДобавлено: 23 мар 2013, 02:33 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11297
Откуда: Харьков
Olej писал(а):
Проверяем всё на тех же example*, которые сделаны ещё при интеграции Boost


И последний штрих - Windows приложение randwr.exe, которое попервах не пожелало крутиться под Wine:
Код:
bash-4.2$ wine randwr.exe xxx2  100 1K
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
длина файла 20971520, блоков в файле 20480
продолжительность выполнения случайной записи:
 0.729003s wall, 0.000000s user + 0.010000s system = 0.010000s CPU (1.4%)
в случайные позиции файла записано 100 блоков длиной 1024 байт каждый
из 20480 блоков файла модифицировано 100 блоков
длина файла после записи: 20971520


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Непрочитанное сообщениеДобавлено: 24 мар 2013, 01:02 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11297
Откуда: Харьков
Olej писал(а):
P.S. При этом только не нужно упускать (для правильной оценки), что Wine не есть система виртуализации. Это а). механизм вызовов Win32 DLL + б). подмена системных DLL (kernel32.dll, user32.dll и мн. др.) с тем, чтобы системные вызовы Win32 API ретранслировать в системные вызовы POSIX.


Я как-то раньше даже упустил из виду - происхождение названия проекта Wine - см. Wine :
Цитата:
Название Wine является рекурсивным акронимом и расшифровывается «Wine Is Not an Emulator» — «Wine — не эмулятор» (имеется в виду, что Wine не является эмулятором компьютера, как, например, qemu или VirtualBox, Wine — это альтернативная реализация Windows API).


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Непрочитанное сообщениеДобавлено: 24 мар 2013, 12:10 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 18 окт 2011, 20:26
Сообщения: 73
Olej писал(а):
Olej писал(а):
Код:
bash-4.2$ wine randwr .\xxx2 1000 1k
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:msvcp90:_Locinfo__Locinfo_ctor_cat_cstr (0x33f2d8 63 ) semi-stub
wine: Unhandled page fault on read access to 0x0000000f at address 0x4010d0 (thread 0009), starting debugger...

:cry:


Вреде как жалуется на отсутствие MS VC 2008 (vcrun2008).

Olej писал(а):
Olej писал(а):

Для того, чтобы запустить созданные *.exe приложения - в Wine не хватает библиотек MS VC 10.

Доставить их можно так:

- берём библиотеки из VC:
Код:
bash-4.2$ ls -l msvc*
-rw-r--r-- 1 olej olej  743248 марта 23 00:01 msvcp100d.dll
-rw-r--r-- 1 olej olej  421200 марта 23 00:02 msvcp100.dll
-rw-r--r-- 1 olej olej 1498960 марта 23 00:01 msvcr100d.dll
-rw-r--r-- 1 olej olej  770384 марта 23 00:02 msvcr100.dll


- и копируем их в каталог Wine:
Код:
bash-4.2$ pwd
/home/olej/.wine/drive_c/windows/system32


- и в приложении Wine Configuration (winecfg) указываем, что эти библиотеки нужно взять сторонние (скопированные):
Вложение:
Wine_004.png


А так не прокатит:
Код:
$ winetricks vcrun2010

или Вы не пользуйтесь winetricks? Правда я не помню, пропишет ли этот скрипт нативность этих библиотек в настройках Wine (надо посмотреть) :-)


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Непрочитанное сообщениеДобавлено: 24 мар 2013, 12:17 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 11297
Откуда: Харьков
Lepton писал(а):
А так не прокатит:
Код:
$ winetricks vcrun2010

или Вы не пользуйтесь winetricks? Правда я не помню, пропишет ли этот скрипт нативность этих библиотек в настройках Wine (надо посмотреть) :-)


Я пользовался winetricks. Хорошая выдумка...
(правда, я как-то с помощью winetricks что-то доустановил так, что полностью развалил выполнение Wine-ом приложений).

Но меня, в данном случае, интересовало детально: чего Wine-у не хватает? Оказалось, что 2-х родных VC DLL (соответственно х2 = 4 - отладочная + релизная версии). Библиотеки VC 10, как я понимаю, покрыли потребности в библиотеках VC 8 & VC 9.


Вернуться к началу
 Профиль Отправить личное сообщение Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.256s | 19 Queries | GZIP : On ]