Android Studio Cmake编写问题,求大神赐教

qq_25658991 2016-11-21 05:45:21
有个Android+cocos2d的项目,想用Cmake编译cocos2d代码和JNI部分。但是每次build项目的时候,都会报错。
项目结构:

在网上边学边写CmakeLists.txt文件,有很多不太懂和写错的地方,求大神赐教:
//====================以下为CmakeLists.txt文件文件内容======================
# 指定cmake最低版本,如果不知道就复制吧
# means we need minimum version 2.8.7 of cmake. It depends on what you need in your project. by default Android Studio built in CMake version is 3.4.1
cmake_minimum_required(VERSION 3.4.1)

MESSAGE("俺们正在生成项目文件")

# 将所有的.cpp源文件都放置在一个字符串list中
SET( MY_SOURCES jni/hellocpp/jniIF.cpp
jni/hellocpp/main.cpp
Classes2/ResultLayer.cpp
Classes2/SmartRes.cpp
Classes2/CustomAnimLayer.cpp
Classes2/CustomPage.cpp
Classes2/BookManager.cpp
Classes2/HelloLibScene.cpp
....这里还有很多其余的cpp文件)

# 将所有被include的文件都放置在一个字符串list中
SET(MY_INCULDES cpp
cocos2d
Classes2
cocos2d/extensions

cocos2d/cocos

cocos2d/extensions

hellocpp
...这里还有很多在Classes2的cpp文件中被include的文件)

# 将所有的外部so库文件都放置在一个字符串list中
SET(SO_LIBRARIES jni/prebuilt/bugrpt.so
jni/prebuilt/bdx.so
jni/prebuilt/gdx-box2d.so
jni/prebuilt/msc.so
jni/prebuilt/weibosdkcore.so)

INCLUDE_DIRECTORIES (${MY_INCULDES})

#没明白这个到底是用来做什么的?
link_directories(${MY_INCULDES})

link_libraries(${SO_LIBRARIES})


# 第一个native-lib是供java调用的文件, SHARED是啥没看明白但是要写上
# 最后俩是所有cpp的名字和相对本文件的位置,这里在一个文件夹中就直接写名字了,文件有多少写多少
# means we create shared library named cocos2d with hello-jni.c as source.
ADD_LIBRARY(cocos2dcpp SHARED ${MY_SOURCES} )


# means we link library needed by cocos2d, in this case log and android.\
TARGET_LINK_LIBRARIES(cocos2dcpp log android)
//====================以上为CmakeLists.txt文件文件内容======================

在app的build.gradle文件中:
//====================以下为app的build.gradle文件内容======================
defaultConfig {
......
externalNativeBuild {
cmake {
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
}
}
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
}
}
//====================以上为app的build.gradle文件内容======================

build项目的时候,总是报错:


Classes2中的每个cpp文件,只要用到cocos2d.h的文件,都会报这个错误,为什么呢?
cocos2d.h文件在cocos2d文件夹的根目录下:
...全文
476 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiguangyaolove 2017-06-06
  • 打赏
  • 举报
回复
#include "cocos/cocos2d.h" 时间过去这么久了,想必楼主早就解决了,希望能帮到搜到这个问题的人
qq_25658991 2016-11-21
  • 打赏
  • 举报
回复
没人回答么?我自己补充一下问题,SmartRes.h文件部分内容:

求大神指导,谢谢了

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧