所以我想在Android Studio上使用Android NDK构建并测试一个CMake.我可以让我的库进行编译,但它似乎不想拉动任何第三方依赖.我一直在阅读工具链并寻找更好的文档,没有运气.有人能告诉我,如果我失踪了吗?
cmake_minimum_required(VERSION 3.4.1)
set(SFML_PATH ${ANDROID_NDK}/sources/sfml)
set(SFML_LIB_PATH ${SFML_PATH}/lib/${ANDROID_NDK_ABI_NAME})
set(SFML_LIB_SYSTEM ${SFML_LIB_PATH}/libsfml-system.so)
set(SFML_LIB_AUDIO ${SFML_LIB_PATH}/libsfml-audio.so)
set(SFML_LIB_GRAPHICS ${SFML_LIB_PATH}/libsfml-graphics.so)
set(SFML_LIB_NETWORK ${SFML_LIB_PATH}/libsfml-network.so)
set(SFML_LIB_WINDOW ${SFML_LIB_PATH}/libsfml-window.so)
set(SFML_LIB_ACTIVITY ${SFML_LIB_PATH}/libsfml-activity.so)
set(SFML_LIB_MAIN ${SFML_LIB_PATH}/libsfml-main.a)
set(SFML_LIBS ${SFML_LIB_SYSTEM} ${SFML_LIB_GRAPHICS} ${SFML_LIB_AUDIO} ${SFML_LIB_WINDOW} ${SFML_LIB_ACTIVITY})
include_directories(${SFML_PATH}/include)
link_directories(${SFML_LIB_PATH})
add_library(native-lib SHARED
src/main/cpp/native-lib.cpp)
target_link_libraries(native-lib log ${SFML_LIBS})
#file(COPY ${SFML_LIBS} DESTINATION ${__android_install_path})
FOREACH(SFML_LIB ${SFML_LIB})
execute_process( COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${SFML_LIB}" "${LIBRARY_OUTPUT_PATH}/${SFML_LIB}" RESULT_VARIABLE __fileCopyProcess )
MESSAGE("Lib: ${SFML_LIB}")
ENDFOREACH(SFML_LIB)
Run Code Online (Sandbox Code Playgroud)
以上是我的CMakeLists.txt.我已经做了一些小的黑客攻击,用SFML和路径进行编译,因为我还没有找到关于CMake和Android的好文档.
我有一个用 Dart 编写的 http 服务器,我计划将其部署到 Linux 虚拟机。现在,我的测试/演示服务器在 Ubuntu 数字海洋液滴上。有没有人有比使用 linux init 服务脚本更好的 init 脚本或更好的方法?
编辑:
我现在的初始化脚本:
#! /bin/sh
### BEGIN INIT INFO
# Provides: dart
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts Dart
# Description: This will start the dart runtime and in turn, start
### END INIT INFO
# Author: David Marchbanks <ptdave20@gmail.com>
# Do NOT "set -e"
# PATH should only include /usr/* …Run Code Online (Sandbox Code Playgroud)