哈工大自然語言處理ltp在windows10下的源代碼安裝時builtin_converters.cpp報錯

安裝LTP的環境要求比較複雜,首先cmake,VS2010等等。今天要說的時編譯過程中出現的一個坑,python setup.py install,編譯到後面會報錯。直接上錯誤代碼:


patch\libs\python\src\converter\builtin_converters.cpp(51): error C2440: “return”: 無法從“const char *”轉換爲“void *”
patch\libs\python\src\converter\builtin_converters.cpp(51): note: 轉換丟失限定符
patch\libs\python\src\converter\builtin_converters.cpp(443): warning C4244: “初始化”: 從“Py_ssize_t”轉換到“int”,可能丟失數據
error: command 'D:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2

錯誤說的很清楚,就是類型轉換出錯。51行加 (void*),使用強制轉換暴力解決即可:

  // Python String.
#if PY_VERSION_HEX < 0x03000000
  void* convert_to_cstring(PyObject* obj)
  {
      return PyString_Check(obj) ? PyString_AsString(obj) : 0;
  }
#else
  void* convert_to_cstring(PyObject* obj)
  {
      return PyUnicode_Check(obj) ?  (void*) _PyUnicode_AsString(obj) : 0;       
  }
#endif
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章