Victor_VG
Tracker Mod | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Свежий "подарок" 2.0.1529 - плагин ProcList не собирается в GCC. Причина ерундовая, я нашёл и устранил её в течении пары минут, ловите патч (сохранить как proclist.patch): Код: diff -r changelog changelog --- changelog (revision 4592) +++ changelog (working copy) @@ -1,3 +1,7 @@ +VictorVG 30.04.2010 01:16:10 +0300 - build 159-1 + +1. Согласуем с исправлениями п.2 в build 1529 + t-rex 10.01.2010 23:26:16 +0200 - build 159 1. NM -> MAX_PATH diff -r makefile_gcc makefile --- makefile_gcc (revision 4592) +++ makefile (working copy) @@ -10,7 +10,7 @@ Pmix.cpp \ Preg.cpp \ wmi.cpp -DOCS = ProcEng.hlf ProcRus.hlf ProcEng.lng ProcRus.lng +DOCS = ProcEng.hlf ProcRus.hlf ProcEng.lng ProcRus.lng changelog USERCPP = -I ./WMI USERLIBS = -lversion -lmpr -lole32 -loleaut32 diff -r Pmix.cpp Pmix.cpp-- Pmix.cpp (revision 4592) --- Pmix.cpp (revision 4592) +++ Pmix.cpp (working copy) @@ -89,7 +89,7 @@ if(lpMsgBuf==_T(' ')) { lpMsgBuf[i] = _T('\n'); break; } items[1] = _tcstok(lpMsgBuf,_T("\r\n")); items[2] = _tcstok(NULL,_T("\r\n")); if(!items[2]) items[2] = items[3]; - int rc = Message(bDown ? FMSG_WARNING|FMSG_DOWN : FMSG_WARNING, + int rc = Message(bDown ? FMSG_WARNING/*|FMSG_DOWN*/ : FMSG_WARNING, // Закоментим сначала и проверим. 0,items,(int)(ArraySize(items) - (items[2]==items[3]))); if(bAllocated) LocalFree( lpMsgBuf ); return rc; diff -r Proclist.rc Proclist.rc --- Proclist.rc (revision 4592) +++ Proclist.rc (working copy) @@ -1,6 +1,6 @@ #include "farversion.hpp" -#define PLUGIN_BUILD 159 +#define PLUGIN_BUILD 159-1 #define PLUGIN_DESC "Process List for FAR Manager" #define PLUGIN_NAME "ProcList" #define PLUGIN_FILENAME "ProcList.dll" | запускать как обычно - [i]patch -i proclist.patch . Поскольку эта программа не использует либы GCC, то при её сборке в MinGW враппер libgcc_s_dw2-1.dll ей не нужен. Я обновил у себя на сервере компилятор, и в документации указал этот момент, а также используйте вот эти подсказки из описания моей сборки компилятора, глядишь, часть проблем испарится: Цитата: ВНИМАНИЕ! Новый компилятор основательно доработан по сравнению с предыдущей серией 4.4, а весь список доработок приведён в файле ./doc/changes.chm и очень настоятельно рекомендуется внимательно его прочитать, а также ознакомится с документацией к компилятору в том же каталоге перед его первым рабочим использованием. Ну, и понятно, что новичкам в GCC необходимо внимательно изучить эти документы. ОСОБЕННОСТИ КОМПИЛЯТОРА НА КОТОРЫЕ НАДО ОБРАТИТЬ ВНИМАНИЕ! Данный компилятор собран по той же архитектурной схеме DW2 с LIFO механизмом управления стеком что и его UNIX вариант. Это позволяет нам получить более быстрый и требующий меньше оперативной памяти исполняемый код, хотя и несколько больший по объёму, но для работы в среде Windows ему необходим переходник-враппер. Функцию враппера выполняет библиотека DLL libgcc_s_dw2-1.dll которая не будет нужна если Вы используете Windows SJLJ компилятор типа MS VC++ или TDM SJLJ-сборку. LIFO механизм UNIX компиляторов намного быстрее и экономичнее по использванию оперативной памяти чем используемый на платформе Windows FIFO стек, но Вы не должны забывать, что там, где Ваш проект использует системный стек Вам необходимо использовать враппер. Кроме враппера необходимого только для DW2 компиляторов в GNU GCC 4.5 добавлена новая рунтайм библиотека libstdc++ необходимая для поддержки нового стандарта ISO C++0x. Поддерживается метафоры языка <future>, <functional> и <random>, а также базовые функции ядра стандарта языка. Для уменьшения размера выходного кода разработчики компилятора рекомендуют использовать статическую линковку с применением нового ключа линкера -static-libstdc++ для всех программ собираемых в GNU GCC 4.5.0-1 что позволит Вам сократить их размер при сохранении всех преимуществ UNIX структуры программ - скорости работы и малого расхода памяти за счёт того, что линкер при сборке добавит в код нужные рунтайм-функции из библиотеки "libstdc++.a". Ключ "-static-libstdc++" можно добавить ключ в блок конфигурации линкера ld, например в LNKFLAGS или компилятора g++ , например в строку CXXFLAGS. Для примера ниже приведён список зависимостей для плагина Far FTP до и после добавления в makefile ключа в строку LNKFLAGS "-static-libstdc++" (работает в GCC 4.5.0 и более новых версиях компилятора) не трогая другие ключи: оригинальный makefile: модифицированный makefile: ADVAPI32.DLL ADVAPI32.DLL KERNEL32.dll KERNEL32.dll libgcc_s_dw2-1.dll libgcc_s_dw2-1.dll libstdc++-6.dll <- libstdc++ не нужена msvcrt.dll msvcrt.dll USER32.dll USER32.dll WINMM.DLL WINMM.DLL WSOCK32.DLL WSOCK32.DLL Список специально дан в такой форме для удобства визуального сравнения. При статической линковке используются функции из библиотек компилятора ./mingw/lib/gcc/mingw32/4.5.0/libstdc++.* , но, учтите, что путь подкаталогу ./mingw/lib/gcc/mingw32/4.5.0/ относительно корневого каталога структуры компилятора жёстко задан в его исполняемом коде. | Ну а с остальной порцией вопросов буду разбираться по мере восстановления пакета программ - ось пришлось переустанавливать - драйвера VIA Hyperion Pro 5.24A оказались не совместимы с ХР SP3 и VIA KT600 несмотря на заявленную производителем совместимость с чипсетами от КТ400 и выше с WinXP реально хорошо если КТ880 и новее поддерживают и это легко ловится по сбоям драйвера ATAPI.SYS в системном журнале.
---------- Жив курилка! (Р. Ролан, "Кола Брюньон") Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti |
| Всего записей: 33236 | Зарегистр. 31-07-2002 | Отправлено: 02:34 30-04-2010 | Исправлено: Victor_VG, 02:46 30-04-2010 |
|