C / C ++ и GNU / PGI: неопределенная ссылка на `__pgio_ini ‘

Есть ли способ связать двоичные файлы компилятора PGI с существующими двоичными файлами GNU? Когда я пытаюсь связаться, я получаю следующую ошибку:

oacc.c.o:(.init+0x8): undefined reference to `__pgio_ini'
collect2: ld returned 1 exit status

Подробности:

Я скомпилировал несколько файлов с помощью gcc и g ++. C main функция включена в эти файлы. Теперь я должен добавить функцию OpenACC в проект, который должен быть скомпилирован PGI C Compiler (pgcc). После компиляции я получаю вышеуказанную ошибку ссылки (ошибка одинакова для обоих pgCC или же g++ в качестве компоновщика).

Может быть, мне нужно интегрировать функцию OpenACC в фиктивную библиотеку и включить / связать ее с проектом. Но я понятия не имею, как это сделать.

К сожалению, весь проект не может быть скомпилирован с компилятором PGI, так как некоторые функции зависят от компилятора GNU.

Заранее спасибо.

0

Решение

В более новых версиях инструментальной цепи GNU на основе GCC требуется, чтобы файлы, которые должны быть связаны (объектные файлы и статические и динамические библиотеки), были указаны в том порядке, в котором символы зависят друг от друга. Следовательно, вы должны поместить флаги компоновщика внешних библиотек в качестве последних параметров:

gcc -o prog prog.o -lfoo

правильно, тогда как

gcc -o prog -lfoo prog.o

приведет к ошибке компоновщика.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]