我需要帮忙搭建一个简单的C++/C# SWIG项目。我很难组合一个使用SWIG绑定的C++项目。我正在使用Visual Studio 2010和最新版本的SWIG。
我的代码很简单:
cpp_file.h:
#pragma once
class cpp_file
{
public:
cpp_file(void);
~cpp_file(void);
int times2(int arg);
};
cpp_file.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_file.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项目中并尝试构建该项目时,出现了两个链接错误:
- error LNK1120: 1 unresolved externals
- error LNK2001: unresolved external symbol _times2
第一个错误消息指向我的dll文件。第二个错误指向某个对象文件(*.obj)。错误消息提到的符号"_times2"在我的项目中找不到。
我该如何进行简单项目呢?是否有一些教程或文档可以逐步解释这个过程?我找不到任何涉及C++、SWIG、C#、Visual Studio 2010和.Net v4.0的内容。