Отсутствует точка с запятой при запуске SWIG в заголовочном файле c ++, который использует пространство имен std - PullRequest
0 голосов
/ 23 мая 2019

Я хочу сгенерировать файл оболочки для Java из заголовочного файла c ++, который использует пространство имен std, а также включает некоторые библиотеки.Когда я пытался запустить swig, он выдает синтаксическую ошибку, в которой говорится, что точка с запятой отсутствует, даже если мой заголовочный файл взят из большой базы кода, и он компилируется и работает отлично.

Я попытался включить строку «Использование пространства имен».std "в файле .i, который требуется swig, а также включая библиотеки, подобные той, что была включена в файл .h, но такая же ошибка все еще существует.

Это мой файл AdaptationPlanner.h

// some code ...
#include <string>
#include <vector>
#include <set>
using namespace std; //line 68
// more code ...

А вот мой файл AdaptationPlanner.i

/* AdaptationPlanner.i */
%module AdaptationPlanner
%{
/* Includes the header in the wrapper code */
#include "AdaptationPlanner.h" 
%}

/* Parse the header file to generate wrappers */
%include "AdaptationPlanner.h"

А вот сообщение об ошибке, которое дает swig:

AdaptationPlanner.h:68: Error: Syntax error - possibly a missing semicolon.

1 Ответ

0 голосов
/ 28 мая 2019
/* AdaptationPlanner.i */
%module AdaptationPlanner
%{
/* Includes the header in the wrapper code */
#include "AdaptationPlanner.h" 
using namespace std; /* <--- */
%}

/* Parse the header file to generate wrappers */
%include "AdaptationPlanner.h"

Я не могу сказать, почему у вас такая проблема.Тем не менее, хотите попробовать вышеуказанное решение?Просто явно укажите пространство имен в файле интерфейса.

...