C++ boost暴露类LNK2019/模块未定义初始化函数

C++ boost暴露类LNK2019/模块未定义初始化函数,c++,python,boost,lnk2019,C++,Python,Boost,Lnk2019,我知道标题中的这些错误并不是什么新鲜事,但在我这里看到的这个星座中,它相当奇怪,我没有找到一个有帮助的解决方案。让我解释一下 我正在使用boost.python、VisualStudio2012和开发者网站上的教程。因此,当我最终修复了所有链接器问题和导入时,我开始学习第一个教程: char const* greet() { return "hello, world"; } #include <boost/python.hpp> using namespace boost::

我知道标题中的这些错误并不是什么新鲜事,但在我这里看到的这个星座中,它相当奇怪,我没有找到一个有帮助的解决方案。让我解释一下

我正在使用boost.python、VisualStudio2012和开发者网站上的教程。因此,当我最终修复了所有链接器问题和导入时,我开始学习第一个教程:

char const* greet()
{
   return "hello, world";
}

#include <boost/python.hpp>
using namespace boost::python;

BOOST_PYTHON_MODULE(hello_ext)
{
    using namespace boost::python;
    def("greet", greet);
}
World.cpp

#include "World.h"
#include <stdio.h>

void greet(){
    printf("hello");
}


#include <boost\python.hpp>
using namespace boost::python;

BOOST_PYTHON_MODULE(hello)
{
    class_<World>("World")
        .def("greet", &World::greet)
        ;
}
在BOOST_PYTHON_模块块中,我可以构建它,但在PYTHON中会出现导入错误,例如:

module does not define init function
奇怪的是,这是一个链接器错误,因为我用简单的问候功能将设置与我的项目进行了三次检查和比较。在尝试公开类时,我是否需要更改一些设置?还是我做错了什么可怕的事?有什么建议吗

问候
Chris

您缺少课程名称:

void World::greet(){
    printf("hello");
}
module does not define init function
void World::greet(){
    printf("hello");
}