设置释放标志时使用调试信息创建的库

时间:2020-01-17 09:53:16

标签: android c++ debugging cmake android-ndk

这是我的shell命令:

cmake .  \
      -DCMAKE_SYSTEM_NAME=Android \
      -DCMAKE_TOOLCHAIN_FILE=$toolchain \
      -DANDROID_NDK=$ndk_path \
      -DANDROID_TOOLCHAIN=clang \
      -DANDROID_ABI=$arc_abi \
      -DANDROID_PLATFORM=android-21 \
      -DCMAKE_BUILD_TYPE=Release \
      -DANDROID_STL=c++_static

make

以及在CMakeLists中:

cmake_minimum_required( VERSION 3.5.1 )
project(husky)

set(prelibs "${CMAKE_SOURCE_DIR}/../../../../third_party/libs")
set(third_include "${CMAKE_SOURCE_DIR}/../../../../third_party/include")
set(src_root "${CMAKE_SOURCE_DIR}/../../../../src")

message(STATUS "cur dir:${CMAKE_CURRENT_SOURCE_DIR}")

string(REPLACE "-Oz" "-O3" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
string(REPLACE "-Os" "-O3" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -std=c++14 -pthread -O3 -Wnon-virtual-dtor  -Wno-unused-parameter")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wextra -flto -fuse-ld=gold -Wl")

set( CMAKE_BUILD_TYPE Release )

...
...

add_library(my_test
            SHARED
            ${ALGO_SRC_LIST}
            ${API_SRC_LIST}
            ${STAGE_SRC_LIST}
            ${UTILS_SRC_LIST}
            ${UTILS_CPU_LIST}
            ${UTILS_FORMAT_LIST}
            ${PIPELINE_SRC_LIST}
            )

target_link_libraries(my_test
        libopencv_imgproc
        libopencv_core
        libcpufeatures
        video
        libtbb
        libalgo
        libprotobuf
        ${EXTRA_LIBS}
        )

无论是否设置CMAKE_BUILD_TYPE,构建库始终具有debuginfo。怎么了?

更新:我的目标是一个动态库。在CMakeLists.txt中添加“ set(CMAKE_BUILD_TYPE Release)”或在cmake命令中添加“ -DCMAKE_BUILD_TYPE = Release”时,结果始终是调试库。

0 个答案:

没有答案