Связывание не удается: в функции `main.cold': неопределенная ссылка на `__cxa_call_terminate'C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Связывание не удается: в функции `main.cold': неопределенная ссылка на `__cxa_call_terminate'

Сообщение Anonymous »

Я пытаюсь собрать с помощью CMake программу, включающую код C++ и CUDA-C++, которую мне удалось собрать несколько месяцев назад, и получаю незнакомую мне ошибку компоновщика:
in function `main.cold': ... undefined reference to `__cxa_call_terminate'`

Я приложу полную ссылку на команду и ее вывод ниже. Почему это происходит и как я могу заставить свою программу скомпоноваться и запуститься?
Примечания:
  • Распространяется Devuan Excalibur GNU/Linux.
  • Версия CUDA – 12.8 (выпущена 3 марта 2025 г.; nvcc 12.8.93)
  • Мой системный компилятор по умолчанию – GCC 14, но набор инструментов CMake использует g++-13 для компиляции C++ по определенным причинам.
  • CMake версии 4.0.2
Командная строка:
/usr/bin/c++ -O3 -DNDEBUG \
-Wl,--dependency-file=examples/CMakeFiles/jacobiCudaGraphs.dir/link.d \
examples/CMakeFiles/jacobiCudaGraphs.dir/modified_cuda_samples/jacobiCudaGraphs/main.cpp.o \
examples/CMakeFiles/jacobiCudaGraphs.dir/modified_cuda_samples/jacobiCudaGraphs/jacobi.cu.o \
-o examples/bin/jacobiCudaGraphs \
-L/usr/local/cuda-12.8/targets/x86_64-linux/lib/stubs \
-L/usr/local/cuda-12.8/targets/x86_64-linux/lib \
-L/usr/lib/gcc/x86_64-linux-gnu/13 -Wl,-rpath,/usr/local/cuda-12.8/lib64 \
/usr/local/cuda-12.8/targets/x86_64-linux/lib/stubs/libcuda.so \
/usr/local/cuda-12.8/lib64/libcudart.so \
/usr/lib/x86_64-linux-gnu/librt.a \
-ldl -lm -lrt \
/usr/local/cuda-12.8.1/targets/x86_64-linux/lib/libcufilt.a \
-lcudadevrt -lcudart_static -lrt -lpthread -ldl

выдает следующие ошибки:
/usr/bin/ld: examples/CMakeFiles/jacobiCudaGraphs.dir/modified_cuda_samples/jacobiCudaGraphs/main.cpp.o: in function `main.cold':
main.cpp:(.text.unlikely+0x119f): undefined reference to `__cxa_call_terminate'
/usr/bin/ld: main.cpp:(.text.unlikely+0x1653): undefined reference to `__cxa_call_terminate'
/usr/bin/ld: main.cpp:(.text.unlikely+0x1882): undefined reference to `__cxa_call_terminate'
/usr/bin/ld: main.cpp:(.text.unlikely+0x197d): undefined reference to `__cxa_call_terminate'
/usr/bin/ld: main.cpp:(.text.unlikely+0x1a1b): undefined reference to `__cxa_call_terminate'
/usr/bin/ld: examples/CMakeFiles/jacobiCudaGraphs.dir/modified_cuda_samples/jacobiCudaGraphs/main.cpp.o:main.cpp:(.text.unlikely+0x1b54): more undefined references to `__cxa_call_terminate' follow
collect2: error: ld returned 1 exit status


Подробнее здесь: https://stackoverflow.com/questions/798 ... o-cxa-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»