[PyQt] Correct build architecture for static libs on iOS simulator?

Patrick Stinson patrickkidd at gmail.com
Wed Feb 1 03:27:56 GMT 2017


What is the correct way to build a SYSROOT for the iOS simulator using pyqtdeploy? When I try to “make iphonsimulator” in “./build” using my ios-64 SYSROOT I get the following unresolved symbols (and I imagine more from the other libraries once I resolve these):

Undefined symbols for architecture x86_64:
  "_PyEval_GetBuiltins", referenced from:
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
  "_PyObject_CallFunction", referenced from:
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
  "_PyImport_AddModuleObject", referenced from:
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
  "_PyModule_GetDict", referenced from:
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
  "_PyDict_SetItemString", referenced from:
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
  "_PyImport_ExecCodeModuleObject", referenced from:
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
  "_PyImport_ImportModule", referenced from:
      qrcimporter_find_loader(_object*, _object*) in pdytools_module.o
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
  "_PyObject_CallObject", referenced from:
      qrcimporter_find_loader(_object*, _object*) in pdytools_module.o
  "_PyErr_SetString", referenced from:
      qrcimporter_init(_object*, _object*, _object*) in pdytools_module.o
  "_PyType_Ready", referenced from:
      _PyInit_pdytools in pdytools_module.o
  "_PyModule_Create2", referenced from:
      _PyInit_pdytools in pdytools_module.o
  "_PyList_Append", referenced from:
      append_path_dirs(_object*, char const**) in pyqtdeploy_start.o
  "_PyInit_sip", referenced from:
      extension_modules in pyqtdeploy_main.o
  "_PyErr_ExceptionMatches", referenced from:
      handle_exception() in pyqtdeploy_start.o
  "_PyMarshal_ReadObjectFromString", referenced from:
      get_code_object(QString const&) in pdytools_module.o
  "_Py_BuildValue", referenced from:
      qrcimporter_find_loader(_object*, _object*) in pdytools_module.o
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
  "_PyErr_NormalizeException", referenced from:
      handle_exception() in pyqtdeploy_start.o
  "_PyInit_QtWidgets", referenced from:
      extension_modules in pyqtdeploy_main.o
  "__Py_NoneStruct", referenced from:
      handle_exception() in pyqtdeploy_start.o
      pdytools_init_executable_dir(QString const&) in pdytools_module.o
      qrcimporter_find_loader(_object*, _object*) in pdytools_module.o
      qrcimporter_find_module(_object*, _object*) in pdytools_module.o
      qrcimporter_get_code(_object*, _object*) in pdytools_module.o
      qrcimporter_get_source(_object*, _object*) in pdytools_module.o
  "_PyUnicode_FromString", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_PyErr_Clear", referenced from:
      handle_exception() in pyqtdeploy_start.o
  "_PyErr_Print", referenced from:
      handle_exception() in pyqtdeploy_start.o
  "_PyLong_AsLong", referenced from:
      handle_exception() in pyqtdeploy_start.o
  "__Py_FalseStruct", referenced from:
      qrcimporter_is_package(_object*, _object*) in pdytools_module.o
  "_Py_OptimizeFlag", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_Py_SetProgramName", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_Py_FileSystemDefaultEncoding", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_PyModule_AddObject", referenced from:
      _PyInit_pdytools in pdytools_module.o
  "_PyImport_AppendInittab", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_Py_NoSiteFlag", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "__PyArg_NoKeywords", referenced from:
      qrcimporter_init(_object*, _object*, _object*) in pdytools_module.o
  "_Py_HasFileSystemDefaultEncoding", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_PyObject_GetAttrString", referenced from:
      handle_exception() in pyqtdeploy_start.o
      qrcimporter_find_loader(_object*, _object*) in pdytools_module.o
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
  "_PyUnicode_FromStringAndSize", referenced from:
      append_path_dirs(_object*, char const**) in pyqtdeploy_start.o
  "_PyImport_Inittab", referenced from:
      qrcimporter_find_module(_object*, _object*) in pdytools_module.o
  "_PyExc_ImportError", referenced from:
      qrcimporter_init(_object*, _object*, _object*) in pdytools_module.o
      raise_import_error(QString const&) in pdytools_module.o
      read_data(QString const&, QByteArray&) in pdytools_module.o
  "_PyArg_ParseTuple", referenced from:
      qrcimporter_init(_object*, _object*, _object*) in pdytools_module.o
      qrcimporter_find_loader(_object*, _object*) in pdytools_module.o
      qrcimporter_find_module(_object*, _object*) in pdytools_module.o
      qrcimporter_get_code(_object*, _object*) in pdytools_module.o
      qrcimporter_get_data(_object*, _object*) in pdytools_module.o
      qrcimporter_is_package(_object*, _object*) in pdytools_module.o
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
      ...
  "_PyImport_ExtendInittab", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_Py_Initialize", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_PyUnicode_FSDecoder", referenced from:
      qrcimporter_init(_object*, _object*, _object*) in pdytools_module.o
  "_Py_FrozenFlag", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_PySys_GetObject", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
      pdytools_init_executable_dir(QString const&) in pdytools_module.o
  "_PyInit_Qt", referenced from:
      extension_modules in pyqtdeploy_main.o
  "_PyErr_Format", referenced from:
      raise_import_error(QString const&) in pdytools_module.o
      read_data(QString const&, QByteArray&) in pdytools_module.o
  "_PyImport_Import", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_PyObject_CallMethod", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_Py_IgnoreEnvironmentFlag", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_PySys_SetObject", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_Py_Finalize", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
      handle_exception() in pyqtdeploy_start.o
  "_PyUnicode_FromKindAndData", referenced from:
      qstring_to_str(QString const&) in pdytools_module.o
  "__Py_TrueStruct", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
      qrcimporter_is_package(_object*, _object*) in pdytools_module.o
  "_PyExc_SystemExit", referenced from:
      handle_exception() in pyqtdeploy_start.o
  "_PyInit_QtGui", referenced from:
      extension_modules in pyqtdeploy_main.o
  "_PyImport_FrozenModules", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_PyType_GenericNew", referenced from:
      _PyInit_pdytools in pdytools_module.o
  "_PySys_SetArgvEx", referenced from:
      pyqtdeploy_start(int, char**, _inittab*, char const*, char const*, char const**) in pyqtdeploy_start.o
  "_PyBytes_FromStringAndSize", referenced from:
      qrcimporter_get_data(_object*, _object*) in pdytools_module.o
  "_PyModule_AddIntConstant", referenced from:
      _PyInit_pdytools in pdytools_module.o
  "_PyErr_Fetch", referenced from:
      handle_exception() in pyqtdeploy_start.o
  "_PyErr_Restore", referenced from:
      handle_exception() in pyqtdeploy_start.o
  "_PyDict_GetItemString", referenced from:
      qrcimporter_load_module(_object*, _object*) in pdytools_module.o
  "_PyInit_QtCore", referenced from:
      extension_modules in pyqtdeploy_main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


> On Jan 31, 2017, at 10:47 AM, Patrick Stinson <patrickkidd at gmail.com> wrote:
> 
> When building the sip python and PYQT libraries, what is the correct build architecture to use for linking with pyqtdeploy -generated targets? When using osx-64, I am getting unresolved symbol errors for symbols defined in the python library upon linking using the makefiles generated by pyqtdeploy.
> 
> If it helps, looking back up in the log there's all these warnings from ld saying that the x86_64 architecture is going to be deprecated for the iPhone simulator.
> 
> Thoughts? Thanks!



More information about the PyQt mailing list