我需要帮助设置一个简单的 C++/C# SWIG 项目。我很难将使用 SWIG 绑定的 C++ 项目组合在一起。我正在使用 Visual Studio 2010 和最新版本的 SWIG。
我的代码很简单:
cpp_文件.h:
#pragma once
class cpp_file
{
public:
cpp_file(void);
~cpp_file(void);
int times2(int arg);
};
cpp_文件.cpp
#include "cpp_file.h"
cpp_file::cpp_file(void)
{
}
cpp_file::~cpp_file(void)
{
}
int cpp_file::times2(int arg)
{
return arg * 2;
}
我的 SWIG 接口文件是:
cpp_文件.i
/* cpp_file.i */
%module cpp_file
%{
/* Put header files here or function declarations like below */
extern int times2(int arg);
%}
extern int times2(int arg);
我可以很好地编译这个项目。然后,我运行 SWIG 命令来生成包装器:
swig -csharp "C:/pathToFile/cpp_file.i"
我现在不知道该怎么办。我找不到任何解释 Visual Studio 2010 中操作的教程或文档。
当我将 SWIG 生成的 *cpp_file_wrap.c* 文件添加到我的 Visual Studio 2010 项目并尝试构建该项目时,我收到两个链接器错误。
- 错误 LNK1120:1 个未解析的外部
- 错误LNK2001:无法解析的外部符号_times2
第一条错误消息指向我的 dll 文件。第二个错误指向某个目标文件 (*.obj)。在我的项目中找不到错误消息提到“_times2”的符号。
我该如何推进我的简单项目?是否有一些教程或一些文档可以逐步解释此过程?我找不到任何涉及 C++ with SWIG、C#、Visual Studio 2010 和 .Net v4.0 的内容。