Невозможно связать библиотеку PAPI с опцией llvm

Я работаю над проектом, в котором мне нужно сгенерировать только битовый код с помощью clang, выполнить некоторые этапы оптимизации с помощью opt, а затем создать исполняемый файл и измерить его аппаратные счетчики.

Я могу связать через Clang напрямую, используя:

clang -g -O0 -w -I/opt/apps/papi/5.3.0/include -Wl,-rpath,$PAPI_LIB -L$PAPI_LIB \
-lpapi /scratch/02681/user/papi_helper.c prog.c -o a.out

Однако теперь я хочу связать его после использования внешнего интерфейса clang и применения проходов оптимизации с помощью opt.

Я пытаюсь следующим образом:

clang -g -O0 -w -c -emit-llvm -I/opt/apps/papi/5.3.0/include -Wl,-rpath,$PAPI_LIB -L$PAPI_LIB \
-lpapi /scratch/02681/user/papi_helper.c prog.c -o prog.o

llvm-link prog.o papi_helper.o -o prog-link.o

// run optimization passes
opt -licm prog-link.o -o prog-opt.o

llc -filetype=obj prog-opt.o -o prog-exec.o

clang prog-exec.o

После прохождения вышеуказанного процесса я получаю следующую ошибку:

undefined reference to `PAPI_event_code_to_name'

Это не в состоянии разрешить функции пап. Заранее благодарю за любую помощь.

2

Решение

Очевидно, вам нужно добавить -lpapi к последнему вызову clang. Как еще компоновщик узнает о libpapi?

1

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


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