Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 从VS2010使用SWIG创建DLL错误LNK2019:未解析的外部符号;int\uu cdecl axtoi_Visual Studio 2010_Swig_Main_Php Extension - Fatal编程技术网

Visual studio 2010 从VS2010使用SWIG创建DLL错误LNK2019:未解析的外部符号;int\uu cdecl axtoi

Visual studio 2010 从VS2010使用SWIG创建DLL错误LNK2019:未解析的外部符号;int\uu cdecl axtoi,visual-studio-2010,swig,main,php-extension,Visual Studio 2010,Swig,Main,Php Extension,我正试图用Visual Studio 2010中的swig生成一个dll文件,我成功地创建并编译了wrapper.cpp代码,并将每个库依赖项添加到我的项目中。现在,当我尝试使用.dll目标扩展名构建项目的发布版本时,出现以下错误: Generating non-SAFESEH image. 1>Ccrypto_wrap.obj : error LNK2019: unresolved external symbol "int __cdecl axtoi(char const *)" (

我正试图用Visual Studio 2010中的swig生成一个dll文件,我成功地创建并编译了wrapper.cpp代码,并将每个库依赖项添加到我的项目中。现在,当我尝试使用.dll目标扩展名构建项目的发布版本时,出现以下错误:

  Generating non-SAFESEH image.
1>Ccrypto_wrap.obj : error LNK2019: unresolved external symbol "int __cdecl axtoi(char const *)" (?axtoi@@YAHPBD@Z) referenced in function __wrap_axtoi
这是有线的,因为wrapper.cpp中的所有其他外部符号都已解析,除了

axtoi
!我的意思是,例如在我的wrapper.cpp中,我有两个axtoi的引用:

(一)

(二)

SWIG_ZEND_NAMED_FE(axtoi,wrap_axtoi,NULL)

我在Linux中成功地创建了类的共享对象,并将其包含在php代码中,效果很好,因此我尝试在Linux中的共享对象中检查
axtoi
,我发现了一件奇怪的事情!当我在共享对象中grep
axtoi
时,我得到:

         U _Z5axtoiPKc
0006ccf1 T _wrap_axtoi
但是对于每一个其他符号,例如
itoax
,其用法与包装器代码中的
axtoi
相同:

00093660 T _Z5itoaxi
0006e19f T _wrap_itoax
如上所述,我在wrapper.cpp代码中使用了几个与axtoi完全相同的类似符号,但我没有得到任何未解决的外部符号错误。有什么想法吗?

我找到了答案:
在C++选项中,SWIG包装代码生成器似乎是调用了代码> Axtoi()/<代码>函数而不是<代码> ATOI()/<代码>函数。它需要在SWIG生成的wrapper.cpp中编辑,然后错误被解决。

axtoi
听起来像是一个打字错误-你确定你没有在某处键入它而不是
atoi
吗?是的,我没有键入任何内容,这个函数是SWIG生成的包装器代码函数之一,我的意思是xxx\u wrap.cpp。当我尝试从此文件和类构建dll时,我遇到了此错误。在没有任何源代码或步骤的情况下发布错误消息不是很有用。我编辑了我的问题,并提供了一些详细信息,希望这次有人能帮助我
00093660 T _Z5itoaxi
0006e19f T _wrap_itoax