У меня есть файл. cpp, который вызывает другой файл. cpp. Я хочу использовать SWIG для создания оболочки Python для этого. Как мне сделать это с помощью SWIG. Когда у меня был один файл. cpp, я смог создать .so следующим образом:
//app.cpp
#include "app.hpp"
int p(int a)
{
std::cout<<"hello...SWIG runs fine!"<<std::endl;
return a;
}
//app.hpp
#include <iostream>
int p(int a);
//app.i
%module app
%{
#include "app.hpp"
%}
%include "app.hpp"
Запущены следующие команды:
swig -c ++ - python app.i
g ++ -Isr c -fPI C -I /../../. ./../usr/include/python3.6m -I /../../../../ usr / include / x86_64- linux -gnu / python3 .6m -l python3 .6m - c app. cpp app_wrap.cxx
g ++ -shared -fPI C -o _app.so app.o app_wrap .o
Мне удалось создать файл .so с помощью этого метода. Однако теперь моему приложению. cpp необходимо использовать функцию, определенную в другом файле. cpp file (функция с именем int fn1 (int x) в hello. cpp) . Как мне создать .so сейчас? Если бы кто-нибудь мог привести небольшой пример, это было бы здорово!
РЕДАКТИРОВАТЬ: : Кто-то предложил мне использовать SWIG и CMAKE вместе. Это правда? Если да, как я могу это сделать?