安裝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