我有一个 Android studio 项目,它使用带有 JNI 的 Native C++ 代码,但是当我尝试构建我的项目时,它会抛出error: undefined reference to 'std::basic_ostream<char...
错误。
我正在使用 ubuntu,我相信问题是由使用 gcc 编译器的 IDE 引起的,并尝试将其编译为 C 代码。当我尝试通过gcc -o foo foo.cpp在终端中运行来运行简单的 hello world 程序时,它给出了相同的错误。当我将 gcc 更改为 g++ 时,一切正常。
但是如何更改 IDE 中的编译器呢?我对使用CMake有点陌生,我想我需要使用cmake的enable_language函数,但即使我将enable_language(CPP)行添加到我的CMakeLists.txt中,它也会给出相同的错误。
这是我的 CMakeLists.txt :
cmake_minimum_required(VERSION 3.4.1)
include_directories("/usr/include/x86_64-linux-gnu/c++/9")
include_directories("/usr/include/c++/9")
include_directories("/usr/include/x86_64-linux-gnu")
include_directories("/usr/include")
file(GLOB srcs *.cpp *.c)
file(GLOB hdrs *.hpp *.h)
include_directories(${OpenCV_DIR}/jni/include)
include_directories(${TESSERACT_INCLUDE_DIRS})
include_directories(${LEPTONICA_INCLUDE_DIRS})
add_library( lib_opencv SHARED IMPORTED )
set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${OpenCV_DIR}/libs/${ANDROID_ABI}/libopencv_java4.so)
add_library(
native-lib
SHARED
#
native-lib.cpp )
find_library(
log-lib
log )
target_link_libraries(
native-lib
lib_opencv …Run Code Online (Sandbox Code Playgroud)