Перекомпілювати нема з чого. Є вихідні коди програми, ця програма використовує деякі функції які є в тих бібліотеках, а вихідних кодів тих бібліотек немає.Взагалі-то я думав що ELF - він так би мовити і в Африці ELF.. Чи без FreeBSD мені не обійтися?
extern FILE *__stdoutp;#define stdout __stdoutp
extern struct _IO_FILE *stdout; /* Standard output stream. */
Назви системних функцій інші. Наприклад stdout у FreeBSD описаний так:Код: [Вибрати]extern FILE *__stdoutp;#define stdout __stdoutpА у Linux так:Код: [Вибрати]extern struct _IO_FILE *stdout; /* Standard output stream. */Тобто код скомпільований у FreeBSD ніколи не знайде __stdoutp у Linux без перекомпіляції чи якоїсь додаткової бібліотеки. А якщо і знайде, то структура __sFILE з FreeBSD має інакший опис ніж структура _IO_FILE з Linux і програма шукатиме дані за іншими адресами.
Є программа, її вихідні коди, і статичні бібліотеки необхідні для роботи цієї програми. Все це робилося для роботи під FreeBSD, під нею воно все і працює. Виникла необхідність портувати все це на linux, але при лінкуванні з цими бібліотеками маємо такий результат:
Звичайно що нема - можна ж просто перекомпілювати.
Ті бібліотеки підозріло якось не подібні на статичні, або я щось не в'їхав.