id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 12921,Linker Error with numpy in boost/python,niko.koester@…,Ralf W. Grosse-Kunstleve,"I am the author of the attached (and solved) stackoverflow question: http://stackoverflow.com/questions/42899376/lnk2001-error-when-using-boostnumpy/42936160#42936160 My question is, is the described behavior a bug? Let me start with the answer: Import the Boost\python numpy package like: #define BOOST_LIB_NAME ""boost_numpy"" #include The Problem description (copy from Stackoverflow): I am trying to call a C++ .dll from Python and return a numpy array. I am using Anaconda 2.7 x64 Visual Studio 2013 update 5 boost 1.63.0 prebuileded for lib64-msvc-12.0 I managed to compile this simple example frome here and run it in Python: #include ""stdafx.h"" #define BOOST_PYTHON_STATIC_LIB #include char const* greet() { return ""hello, world""; } BOOST_PYTHON_MODULE(test) { using namespace boost::python; def(""greet"", greet); } I am unsure about the #define BOOST_PYTHON_STATIC_LIB but without it python could not open the pyd file. I suspected that python could not resolve the references to MSVCR120.dll in the dynamic build, but I am just guessing. Next step was to include and follow this instuctions and start with just creating a numpy::ndarray. Yes, I am aware that void is in contradiction to the intention of getting values, I just wanted to keep things as simple as possible. #include namespace p = boost::python; namespace np = boost::python::numpy; void getNPArray() { Py_Initialize(); np::initialize(); p::object tu = p::make_tuple('a', 'b', 'c'); np::ndarray const example_tuple = np::array(tu); return; } The import and namespace declarations compile without error. At next step I encountered the linker error. While Py_Initialize() worked fine, the np::initialize() causes the linker to throw error LNK2001: unresolved external symbol ""void __cdecl boost::python::numpy::initialize(bool)"" (?initialize@numpy@python@boost@@YAX_N@Z) And np::ndarray const example_tuple = np::array(tu) causes a error LNK2001: unresolved external symbol ""class boost::python::numpy::ndarray __cdecl boost::python::numpy::array(class boost::python::api::object const &)"" (?array@numpy@python@boost@@YA?AVndarray@123@AEBVobject@api@23@@Z) As the linker is perfectly happy with the first example I am toally confused about what is going on here. I also tried to comment out all parts from the first example and just compile the second part witout any change in behaviour. ",Bugs,new,To Be Determined,python USE GITHUB,Boost 1.63.0,Problem,,,