Замечания по выпуску


34.8 Глава 12. Building Solaris Applications

34.8.1 SPARCompiler C++

Ошибки выполнения прикладных программ C/C++ и процедур SQL в Solaris

Если при использовании компилятора Sun WorkShop Compiler C/C++ вы столкнулись с проблемами с выполняемыми файлами и получаете сообщения об ошибках такого типа:

  1. syntax error at line 1: `(' unexpected
  2. ksh: <имя программы>: cannot execute (где имя программы - имя скомпилированного выполняемого файла)

возможно, эта ошибка вызвана тем, что компилятор создает неправильные выполняемые файлы при компоновке с libdb2.so. Чтобы исправить эту ошибку, можно добавить следующую опцию компилятора в команды компиляции и компоновки:

   -xarch=v8plusa

Например, при компиляции примера прикладной программы dynamic.sqc:

   embprep dynamic sample
   embprep utilemb sample
   cc -c utilemb.c -xarch=v8plusa -I/export/home/db2inst1/sqllib/include
   cc -o dynamic dynamic.c utilemb.o -xarch=v8plusa -I/export/home/db2inst1/
     sqllib/include \
      -L/export/home/db2inst1/sqllib/lib -R/export/home/db2inst1/sqllib/lib -l db2

Примечания:

  1. Если в системе Solaris используются процедуры SQL и строка компиляции задается в переменной профиля DB2_SQLROUTINE_COMPILE_COMMAND, в ней должна быть задана указанная выше опция компилятора. Команда компиляции по умолчанию содержит эту опцию:
       db2set DB2_SQLROUTINE_COMPILE_COMMAND="cc -# -Kpic  -xarch=v8plusa
       -I$HOME/sqllib/include \
         SQLROUTINE_FILENAME.c -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib
         -R$HOME/sqllib/lib -ldb2
    

  2. Для компиляции в Solaris 64-битных процедур SQL удалите опцию -xarch=v8plusa и добавьте в показанные выше команды опцию -xarch=v9.


[ Начало страницы | Страница назад | Страница вперед | Содержание | Индекс ]