我决定让我的程序与windows环境兼容。但是我在windows上的编程经验很少。有一些错误需要帮助。
环境:
- 操作系统:win7-64位,
- ide:codeblocks12.11,
- python: Python 2.7.3 Windows X86-64 安装程序(Windows AMD64 / Intel 64 / X86-64 二进制 [1] -- 不包括源代码)
- 编译器:来自codeblocks安装包的mingw。
- 升压:升压1.52
我只复制和测试来自“.\boost_1_52_0\libs\python\example\tutorial”的这个“hello”代码
代码:
#include <iostream>
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
char const* greet()
{ return "hello, world"; }
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
错误信息:
mingw32-g++.exe -Wall -fexceptions -g -ID:\boost\include\boost-1_52 -IC:\Python27\include -c E:\project\snail-MW\test1\main.cpp -o obj\Debug\main.o
mingw32-g++.exe -LD:\boost\lib\ -LC:\Python27\libs -o bin\Debug\test1.exe obj\Debug\main.o
obj\Debug\main.o: In function `inithello_ext':
E:/project/snail-MW/test1/main.cpp:11: undefined reference to `boost::python::detail::init_module(char const*, void (*)())'
obj\Debug\main.o: In function `ZNK5boost6python9type_info4nameEv':
D:/boost/include/boost-1_52/boost/python/type_id.hpp:165: undefined reference to `boost::python::detail::gcc_demangle(char const*)'
obj\Debug\main.o: In function `ZNK5boost6python15to_python_valueIRKPKcEclES5_':
D:/boost/include/boost-1_52/boost/python/converter/builtin_converters.hpp:161: undefined reference to `boost::python::converter::do_return_to_python(char const*)'
................
它也有一些错误,只能通过“.\boost_1_52_0\libs\python\example\tutorial”站中的“bjam toolset=gcc variant=release”命令编译。