Ошибка связывания MinGW ld – неопределенная ссылкаC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка связывания MinGW ld – неопределенная ссылка

Сообщение Anonymous »

Я надеюсь, что в эпоху искусственного интеллекта найдутся хотя бы несколько людей, которые все еще смогут помочь решить проблему, которую не может решить «всезнающий» GPT.
Проблема:
Я пытаюсь создать интерфейс Python для библиотеки C++, и несколько модулей выдают ошибки при связывании. Подробности об ошибке приведены ниже.
Подробности об ошибке
2024-03-14 18:26:40,630 - ERROR -
------------------------------
Error compiling stepper_motor:

Error code: 1
Error: C:/SysGCC/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\User\AppData\Local\Temp\ccfElxip.o:stepper_motor_wrap.cxx:(.text+0x178a4): undefined reference to `SBC_RequestTriggerSwitches'collect2.exe: error: ld returned 1 exit status

g++ command: ['g++', '-shared', '-o', 'd:\\CZI_scope\\code\\pymodules\\thorlabs_kinesis\\motion_control\\benchtop\\_stepper_motor.pyd', 'd:\\CZI_scope\\code\\pymodules\\thorlabs_kinesis\\motion_control\\benchtop\\stepper_motor_wrap.cxx', '-Ic:\\Users\\User\\mambaforge\\envs\\rich\\include', '-Id:\\CZI_scope\\code\\pymodules\\thorlabs_kinesis\\__include', '-Lc:\\Users\\User\\mambaforge\\envs\\rich', '-Ld:\\CZI_scope\\code\\pymodules\\thorlabs_kinesis\\__lib', '-lpython39', '-lThorlabs.MotionControl.Benchtop.StepperMotor', '-Wno-error']
------------------------------

Рассматриваемый символ определен в заголовочном файле (следовательно, ошибка связывания, а не компиляции). Я сделал дамп экспорта файла .lib с помощью dumpbin, и судя по выходным данным, имя было искажено. Я знаю, что это стандартно для библиотек C++, поэтому не уверен, что проблема в этом.
Вывод в корзину
?RequestTriggerSwitches@CBenchtopStepperMotorChannel@StepperMotor@Benchtop@MotionControl@Thorlabs@@QEBAFXZ (public: short __cdecl Thorlabs::MotionControl::Benchtop::StepperMotor::CBenchtopStepperMotorChannel::RequestTriggerSwitches(void)const )

Определение заголовка
#ifdef BENCHTOPSTEPPERMOTORDLL_EXPORTS
/// Gets the Benchtop Stepper API.
#define BENCHTOPSTEPPERMOTOR_API __declspec(dllexport)
#else
#define BENCHTOPSTEPPERMOTOR_API __declspec(dllimport)
#endif
extern "C"
{
BENCHTOPSTEPPERMOTOR_API short __cdecl SBC_RequestTriggerSwitches(char const * serialNo, short channel);
...
}

Файл интерфейса SWIG

%module stepper_motor

// Remove calling convention macros compatibility with SWIG
#define __cdecl
#define __stdcall
#define __declspec(x)
#define WINAPI

%{
#include
#include
#define BENCHTOPSTEPPERMOTORDLL_EXPORTS
#include "Thorlabs.MotionControl.Benchtop.StepperMotor.h"
%}
%include "Thorlabs.MotionControl.Benchtop.StepperMotor.h"


Подробнее здесь: https://stackoverflow.com/questions/781 ... -reference
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Неопределенная ссылка... сложность связывания библиотеки opencv с CMAKE
    Гость » » в форуме C++
    0 Ответы
    27 Просмотры
    Последнее сообщение Гость
  • Неопределенная ссылка для компиляции и связывания XML++ и GLIB
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Наследование связывания бросков «неопределенная ссылка на ...» c ++
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • MinGW и GLUT неопределенная ссылка на «_imp____glutInitWithExit@12»
    Гость » » в форуме C++
    0 Ответы
    27 Просмотры
    Последнее сообщение Гость
  • Почему я получаю ошибки «неопределенная ссылка», пытаясь использовать OpenCV в Qt Creator с MinGW?
    Anonymous » » в форуме C++
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous

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