Потом возможно что exe несовместим с хаски 1.9 возможно, так как он собирается
и подтягивает хедеры хаски.
думаю что тот экзешник собран для версии 1.4. На счет костыля вот что мы
обсуждали c Michael Dukelsky (2:5020/1042)
SA> кусок recode.h из huskylib 1.9
SA> /*** Declarations & defines
SA> ***********************************************/
SA> #ifdef __cplusplus
SA> extern "C" {
SA> #endif
SA> /* Allocate and initialise charset tables
SA> */
SA> HUSKYEXT VOID initCharsets(VOID);
SA> /* Release memory, allocated by initCharsets()
SA> */
SA> HUSKYEXT VOID doneCharsets(VOID);
SA> /* Translate using "intab" table
SA> */
SA> HUSKYEXT VOID recodeToInternalCharset(char *string);
SA> /* Translate using "outtab" table
SA> */
SA> HUSKYEXT VOID recodeToTransportCharset(char *string);
SA> /* Read translate tables from file
SA> * 1st parameter: input table file name (convert to internal charset)
SA> * 2nd parameter: output table file name (convert to transport
SA> charset) * Specify NULL instead file name if don't want set table *
SA> Return 0 if success. */ HUSKYEXT int getctabs(char *intabFileName,
SA> char *outtabFileName );
SA> #ifdef __cplusplus
SA> }
SA> #endif
SA> Глядя сюда:
SA>
https://stackoverflow.com/questions/9742135/g-error-anonymous-has-inco
SA> mplete-type не правильно ли так?
SA> /* Allocate and initialise charset tables
SA> */
SA> HUSKYEXT VOID initCharsets();
SA> /* Release memory, allocated by initCharsets()
SA> */
SA> HUSKYEXT VOID doneCharsets();
MD> Нет. Так будет неправильно. Проект Husky написан на C, а не на C++. Если
MD> мне не изменяет мой склероз, в языке C в объявлении функции без параметров
MD> НАДО писать void.
MD> Update: посмотрел проект стандарта С99 (самого стандарта у меня нет).
MD> Написано:
MD> The special case of an unnamed parameter of type void as the only item in
MD> the list
MD> specifies that the function has no parameters.
MD> В проекте стандарта С11 та же самая фраза. Так что твоё предложение не
MD> проходит.
MD>
MD> Далее в С99 написано:
MD> In a declaration whose storage-class specifier is typedef, each declarator
MD> defines an
MD> identifier to be a typedef name that denotes the type specified for the
MD> identifier... [...] A typedef declaration does not introduce a new type,
MD> only a synonym for the type so specified.
MD>
MD> Отсюда я делаю вывод, что в языке С не только надо писать void в качестве
MD> списка параметров при объявлении функции без параметров, но и можно вместо
MD> void использовать VOID, который является "typedef name" для void, то есть
MD> синонимом типа void.
MD>
MD> Ты используешь компилятор С++ и, по-видимому, достаточно старый. Он не
MD> видит, что там чёрным по белому специально для компиляторов С++ написано,
MD> что это код на С, а не на С++. Это очень похоже на баг в компиляторе.
MD> Впрочем, я этот вопрос дальше не исследовал.
Как ты понял чтобы QFE банально собрался костылится и хаски и сам QFE, но сам
QFE по лайту еще:
&& cd ./qfe && ./configure && sed -i "s#--gc-sections#-gc-sections#g"
/root/devel/qfe/src/
src.pro \