我正在尝试编写一个使用linasm-1.13 库的 Octave C++ .oct 函数,但我似乎无法从 /usr/share/zoneinfo/ 获取基本的 tzdata 加载工作。到目前为止,我的简单测试功能是
#include <octave/oct.h>
#include <Time.h> // the linasm-1.13 library
DEFUN_DLD ( tz, args, nargout,
"-*- texinfo -*-\n\
@deftypefn {Function File} {} tz (@var{YYYYMMDDHHMMSS})\n\
\n\
@end deftypefn" )
{
octave_value_list retval_list ;
unsigned int tz ;
const char *ny_time = "/usr/share/zoneinfo/America/New_York" ;
tz = Time::LoadTimeZone( ny_time ) ;
return retval_list ;
在使用 mkoctfile 编译时,会出现此错误
>> mkoctfile tz.cc
tz.cc: In function ‘octave_value_list Ftz(const octave_value_list&, int)’:
tz.cc:24:34: error: cannot call member function ‘unsigned int Time::LoadTimeZone(const char*)’ without object
tz = Time::LoadTimeZone( ny_time ) ;
^
warning: mkoctfile: building exited with failure status
我对此的理解是 ny_time 不是一个可识别的对象,但我已尝试将 ny_time 转换为字符串文字,如此接受的 SO 答案中所述。
我这样做是因为根据linasm 页面对 LoadTimeZone 的输入应该是“描述所需时区的 tzfile 的路径”。我哪里错了?