我试图在linux下接入c++的baidu ai sdk;
按照官方文档 我安装并依赖了jsoncpp,curl,openssl。并编写了一个cmakelist.txt.
在执行make后,收到来自base.h中#include的报错,见于#errorpage
完整的cmakelist。txt我贴在最后。
百度了一下说是c++跟MYSQL 发生冲突,我不知道如何解决。恳请大神帮帮忙。跟我比较像的问题在网上我也找到了一个:https://gcc.gnu.org/legacy-ml/gcc-help/2004-06/msg00159.html
#errorpage
Scanning dependencies of target AI
[ 50%] Building CXX object CMakeFiles/AI.dir/pj1.cpp.o
In file included from /usr/include/c++/7/bits/localefwd.h:42:0,
from /usr/include/c++/7/string:43,
from /usr/include/c++/7/stdexcept:39,
from /usr/include/c++/7/array:39,
from /usr/include/c++/7/tuple:39,
from /usr/include/c++/7/bits/unique_ptr.h:37,
from /usr/include/c++/7/memory:80,
from /home/shen/Documents/baidu_ai/aip_cpp/pj2/../base/base.h:18,
from /home/shen/Documents/baidu_ai/aip_cpp/pj2/../image_classify.h:19,
from /home/shen/Documents/baidu_ai/aip_cpp/pj2/pj1.cpp:1:
/usr/include/c++/7/cctype:64:11: error: ‘::isalnum’ has not been declared
using ::isalnum;
^~~~~~~
/usr/include/c++/7/cctype:65:11: error: ‘::isalpha’ has not been declared
using ::isalpha;
^~~~~~~
/usr/include/c++/7/cctype:66:11: error: ‘::iscntrl’ has not been declared
using ::iscntrl;
^~~~~~~
/usr/include/c++/7/cctype:67:11: error: ‘::isdigit’ has not been declared
using ::isdigit;
^~~~~~~
/usr/include/c++/7/cctype:68:11: error: ‘::isgraph’ has not been declared
using ::isgraph;
^~~~~~~
/usr/include/c++/7/cctype:69:11: error: ‘::islower’ has not been declared
using ::islower;
^~~~~~~
/usr/include/c++/7/cctype:70:11: error: ‘::isprint’ has not been declared
using ::isprint;
^~~~~~~
/usr/include/c++/7/cctype:71:11: error: ‘::ispunct’ has not been declared
using ::ispunct;
^~~~~~~
/usr/include/c++/7/cctype:72:11: error: ‘::isspace’ has not been declared
using ::isspace;
^~~~~~~
/usr/include/c++/7/cctype:73:11: error: ‘::isupper’ has not been declared
using ::isupper;
^~~~~~~
/usr/include/c++/7/cctype:74:11: error: ‘::isxdigit’ has not been declared
using ::isxdigit;
^~~~~~~~
/usr/include/c++/7/cctype:75:11: error: ‘::tolower’ has not been declared
using ::tolower;
^~~~~~~
/usr/include/c++/7/cctype:76:11: error: ‘::toupper’ has not been declared
using ::toupper;
^~~~~~~
/usr/include/c++/7/cctype:87:11: error: ‘::isblank’ has not been declared
using ::isblank;
^~~~~~~
In file included from /usr/include/c++/7/bits/locale_facets.h:41:0,
from /usr/include/c++/7/bits/basic_ios.h:37,
from /usr/include/c++/7/ios:44,
from /usr/include/c++/7/istream:38,
from /usr/include/c++/7/sstream:38,
from /home/shen/Documents/baidu_ai/aip_cpp/pj2/../base/http.h:20,
from /home/shen/Documents/baidu_ai/aip_cpp/pj2/../base/base.h:20,
from /home/shen/Documents/baidu_ai/aip_cpp/pj2/../image_classify.h:19,
from /home/shen/Documents/baidu_ai/aip_cpp/pj2/pj1.cpp:1:
/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:49:35: error: ‘_ISupper’ was not declared in this scope
static const mask upper = _ISupper;
^~~~~~~~
/usr/include/x86_64-linux-gnu/c++/7/bits/ctype_base.h:49:35: note: suggested alternative: ‘_ISwupper’
static const mask upper = _ISupper;
^~~~~~~~
# cmake needs this line
cmake_minimum_required(VERSION 2.8)
# Define project name
project(AI)
# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
aux_source_directory(. DIR_SRCS)
# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
include_directories(..)
message(STATUS " include path: ..")
find_package(CURL REQUIRED)
if(CURL_FOUND)
message("found_curl")
endif()
include_directories(${CURL_INCLUDE_DIR})
link_directories(${CURL_LIBRARY_DIR})
#find_package(crypto REQUIRED)
#if(crypto_FOUND)
#message("found_openssl")
#else()
message("not _found_openssl,use set configution")
set(crypto_LIBRARY_DIR ../../openssl)
set(crypto_INCLUDE_DIR ../../openssl/include/crypto)
#endif()
include_directories(${crypto_INCLUDE_DIR})
link_directories(${crypto_LIBRARY_DIR})
find_package(jsoncpp)
if(jsoncpp_FOUND)
message("found_jsoncpp")
endif()
include_directories(${jsoncpp_INCLUDE_DIR})
link_directories(${jsoncpp_LIBRARY_DIR})
# Declare the executable target built from your sources
add_executable(AI ${DIR_SRCS})
target_link_libraries(AI ${CURL_LIBRARY})
target_link_libraries(AI crypto)
target_link_libraries(AI ${jsoncpp_LIBRARY})
# Link your application with OpenCV libraries
#target_link_libraries(AI ${OpenCV_LIBS})
add_compile_options(-std=c++11)
请登录后评论
TOP
切换版块
楼主你解决了吗 我也遇到一样的问题, 莫名其妙。。
具体用的哪个接口能力