gpt4 book ai didi

安卓NDK :linking static library with shared library

转载 作者:行者123 更新时间:2023-11-29 14:50:00 34 4
gpt4 key购买 nike

我正在尝试编译我的 native 代码。这是我的 android.mk 文件

//part1-static lib
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := irrlicht
IRRLICHT_LIB_NAME := lib$(LOCAL_MODULE).a

LOCAL_C_INCLUDES := include

LOCAL_SRC_FILES := \
CColorConverter.cpp \
CCSMLoader.cpp \
CCubeSceneNode.cpp \
CD3D8Driver.cpp \
include $(BUILD_STATIC_LIBRARY)

//part-2 shared lib
include $(CLEAR_VARS)
LOCAL_MODULE := irrlichttest
LOCAL_SRC_FILES := test-app.cpp test.cpp android-receiver.cpp
LOCAL_C_INCLUDES := include
LOCAL_CFLAGS := -O3 -DANDROID_NDK -DDISABLE_IMPORTGL -I$(LOCAL_PATH)/../include/ - I./include/
LOCAL_CPPFLAGS := -Wno-error=format-security
LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog -lGLESv2
LOCAL_STATIC_LIBRARIES := irrlicht
include $(BUILD_SHARED_LIBRARY)

这是我的 application.mk

APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-10
APP_MODULE := irrlicht irrlichttest

我想先编译“irrlicht”模块,然后再编译“irrlichttest”模块。我面临的问题是我的 irrlichttest 模块首先编译,它开始寻找引用并给我未定义的引用错误。现在如果我编译第 1 部分(静态lib) 只有它成功生成 libirrlicht.a,但是对于第 2 部分,它开始给我错误。我做错了什么。

最佳答案

在第一个 LOCAL_SRC_FILES 定义的末尾有一个额外的\,这使得“include $(BUILD_STATIC_LIBRARY)”部分进入 LOCAL_SRC_FILES,并且该行永远不会被解析/执行。换句话说,由于这个原因,ndk-build 完全忽略了“iirlicht”模块的模块定义,因此出现了您所看到的问题。

删除 CD3D8Driver.cpp 后的\,应该可以解决问题。

关于安卓NDK :linking static library with shared library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21473224/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com