I was able to solve that by simply exporting the symbols.looo wrote:building with everything disabled gives a linking problem with PyCXX
Code: Select all
diff --git a/src/CXX/Python3/IndirectPythonInterface.hxx b/src/CXX/Python3/IndirectPythonInterface.hxx
index 5ffaf43..a4c0cf4 100644
--- a/src/CXX/Python3/IndirectPythonInterface.hxx
+++ b/src/CXX/Python3/IndirectPythonInterface.hxx
@@ -175,8 +175,8 @@ PYCXX_EXPORT int &_Py_TabcheckFlag();
PYCXX_EXPORT int &_Py_VerboseFlag();
PYCXX_EXPORT int &_Py_UnicodeFlag();
-void _XINCREF( PyObject *op );
-void _XDECREF( PyObject *op );
+PYCXX_EXPORT void _XINCREF( PyObject *op );
+PYCXX_EXPORT void _XDECREF( PyObject *op );
PYCXX_EXPORT char *__Py_PackageContext();
};
diff --git a/src/CXX/IndirectPythonInterface.cxx b/src/CXX/IndirectPythonInterface.cxx
index dd63bf3..8d23ce5 100644
--- a/src/CXX/IndirectPythonInterface.cxx
+++ b/src/CXX/IndirectPythonInterface.cxx
@@ -427,7 +427,7 @@ PYCXX_EXPORT int &_Py_VerboseFlag() { return *ptr_Py_VerboseFla
_Py_Dealloc((PyObject *)(op))
#endif
-void _XINCREF( PyObject *op )
+PYCXX_EXPORT void _XINCREF( PyObject *op )
{
// This function must match the contents of Py_XINCREF(op)
if( op == NULL )
@@ -440,7 +440,7 @@ void _XINCREF( PyObject *op )
}
-void _XDECREF( PyObject *op )
+PYCXX_EXPORT void _XDECREF( PyObject *op )
{
// This function must match the contents of Py_XDECREF(op);
if( op == NULL )
Code: Select all
DocumentObserverPython.cpp.obj : error LNK2019: unresolved external symbol "bool __cdecl Py::operator==(class Py::Object const &,class Py::Object const &)" referenced in function "public: static void __cdecl App::DocumentObserverPython::removeObserver(class Py::Object const &)"
PropertyFile.cpp.obj : error LNK2019: unresolved external symbol "struct _typeobject PyFileIO_Type" (?PyFileIO_Type@@3U_typeobject@@A) referenced in function "public: virtual void __cdecl App::PropertyFileIncluded::setPyObject(struct _object *)"
I'm still building with everything disabled, so I haven't looked into the other errors yet.