Звонок на C / C ++ от Юлии - PullRequest
       17

Звонок на C / C ++ от Юлии

4 голосов
/ 03 марта 2020

Я пытаюсь скомпилировать динамическую c библиотеку для Джулии с использованием C ++. Использую CLion на windows. Когда я компилирую с MinGW, ccall прекрасно работает с dll. Когда я компилирую с MSV C, Джулия не может найти функцию. У кого-нибудь есть идеи, почему и как это решить? Я должен использовать MSV C ..

пример кода:

test.h

extern "C" int add2(int in);


test.cpp

#include "test.h"

int add2(int in){
return in+2;
}

1 Ответ

1 голос
/ 03 марта 2020

Нашел ответ. компилятору MSV C требуются явные инструкции для вывода / ввода внешних функций "C". Следующий код работает с MSV C и распознается ccall Джулии:

test.h

extern "C" __declspec(dllexport) int add2(int in);


test.cpp

#include "test.h"

int add2(int in){
return in+2;
}

Чтобы импортировать функцию extern "C", можно использовать:

 __declspec(dllimport)

Изменить: Это не связано с компилятором, а скорее необходимо для всех DLL-файлов. MinGW делает это автоматически.

...