Я переношу проект, и нам нужно перенести исходные файлы ESQL/C из HP-UX в Red Hat Linux.
Какие могут быть несовместимости при перемещении этих файлов ESQL/C в Linux?
Я переношу проект, и нам нужно перенести исходные файлы ESQL/C из HP-UX в Red Hat Linux.
Какие могут быть несовместимости при перемещении этих файлов ESQL/C в Linux?
Ответ состоит из двух частей:
По большей части, если вы не приложили все усилия для написания кода SQL для конкретной системы, я ожидаю, что перенесу исходный код ESQL/C напрямую из HP-UX в Red Hat Linux, не более чем перекомпилируя. Хотя вы, вероятно, можете написать код, который не будет переносимым между системами, я не совсем уверен, как вы этого добьетесь, если будете учитывать 32-битный и 64-битный код (если это действительно необходимо) . У меня есть несколько основных программ, которые переносятся между Linux и HP-UX (или AIX, или Solaris, или Mac OS X) без каких-либо изменений во встроенном коде SQL.
Проблемы переноса здесь не зависят от кода ESQL/C. Существуют различия между обработкой совместно используемой библиотеки, например, или вызовами функций, специфичных для HP-UX, которые недоступны в Linux (или, что еще хуже, одна и та же функция доступна в обоих, но ведет себя по-разному). Эти проблемы следует отнести к правильной причине — коду C вокруг ESQL/C, а не ESQL/C как таковому.
long
там, где вам нужно int
на 32-битной стороне. Я спрашиваю косвенно, с какой версии CSDK (ESQL/C) вы переходите в системе HP-UX и на какую версию CSDK (ESQL/C) вы переходите на Сторона линукса. Если ваш код C не делает что-то странное, например, использует код загрузки общей библиотеки HP-UX, я ожидаю, что он будет перекомпилирован и запущен. Я не могу этого обещать; Я не знаю, в каком беспорядке код.
- person Jonathan Leffler; 03.01.2013