如何解决CMAKE删除lib并使用一个预构建版本
在我的CMAKE项目中,我目前使用源代码来编译库,并最终使用它与JNI库进行链接。我现在想删除我的库 FoxSDKCore 的构建步骤,而只是构建JNI库并将其链接到预构建的 FoxSDKCore 。
我的脚本当前看起来像:
# For more information about using CMake with Android Studio,read the
# documentation: https://d.android.com/studio/projects/add-native-code.html
# Sets the minimum version of CMake required to build the native library.
cmake_minimum_required(VERSION 3.4.1)
set(PATH_TO_FOXSDK "~/Downloads/fosdkcore")
message(${PATH_TO_FOXSDK})
add_definitions(-DLINUX)
add_definitions(-D_FILE_OFFSET_BITS=64)
set( CMAKE_CXX_FLAGS "-std=c++11 -stdlib=libc++" )
set(CMAKE_BUILD_TYPE Debug)
include_directories(${PATH_TO_FOXSDK}/Include)
include_directories(${PATH_TO_FOXSDK}/Development/winhdrs)
include_directories(${PATH_TO_FOXSDK}/Development/SDK)
find_package(JNI)
if (JNI_FOUND)
message (STATUS "JNI_INCLUDE_DIRS=${JNI_INCLUDE_DIRS}")
message (STATUS "JNI_LIBRARIES=${JNI_LIBRARIES}")
endif()
include_directories(${JNI_INCLUDE_DIRS})
set(fox_files
${PATH_TO_FOXSDK}/Development/SDK/CallBacks.h
...
)
add_library(FoxSDKCore
SHARED
${fox_files})
add_library( # Sets the name of the library.
JNIViie
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
JNIViie.cpp
)
target_link_libraries(FoxSDKCore
${CMAKE_THREAD_LIBS_INIT}
)
target_link_libraries( # Specifies the target library.
JNIViie
FoxSDKCore)
据我了解,我必须设置IMPORTED标志,所以我使用
add_library(FoxSDKCore
SHARED
IMPORTED)
add_library( # Sets the name of the library.
JNIViie
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
JNIViie.cpp
)
target_link_libraries( # Specifies the target library.
JNIViie
FoxSDKCore)
但这将失败。任何提示如何链接现有库?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。