gpt4 book ai didi

boost::posix_time::ptime 转换的 SWIG 错误

转载 作者:行者123 更新时间:2023-12-02 22:52:39 24 4
gpt4 key购买 nike

我正在使用 SWIG 扭曲一个非常简单的 C++ 类。boost ptime 用于该 C++ 类中。

当我尝试执行命令时

swig -c++ -python example.i

有一个错误:

example.h:7: Warning 315: Nothing known about 'boost::posix_time::ptime'.
example.h:7: Warning 315: Nothing known about 'boost::posix_time::ptime'.

如何解决这个问题?

example.i 文件是:

//File: example.i
%module example

%{
#define SWIG_FILE_WITH_INIT
#include <boost/date_time/posix_time/ptime.hpp>
#include "example.h"
%}

// for std:string
%include "std_string.i"

// for vector
%include "std_vector.i"

%include stl.i
%include "example.h"

example.h 文件是:

#pragma once

#include <string>
#include <boost/date_time/posix_time/ptime.hpp>

using std::string;
using boost::posix_time::ptime;

class Example{
public:
Example(string name, ptime timestamp){
// doSomething...
}
};

最佳答案

由 friend 迈克和我解决。

正确的接口(interface)文件如下(不提及boost头):

/* File: example.i */
%module example

%{
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}

%include "example.h"

swig执行命令为(OSX):

swig -c++ -python example.i 
g++ -O2 -fPIC -c example.h -std=c++11
g++ -O2 -fPIC -c example_wrap.cxx -I/Library/anaconda2/include/python2.7
g++ -bundle -flat_namespace -undefined suppress -o _example.so *.o

swig执行命令为(Ubuntu 14.04):

swig -c++ -python example.i 
g++ -O2 -fPIC -c example.h -std=c++11
g++ -O2 -fPIC -c example_wrap.cxx -I/usr/include/python2.7
g++ -shared -o _example.so *.o

仅更改最后一行。

关于boost::posix_time::ptime 转换的 SWIG 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40448392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com