问题描述
我的一个项目有一个大问题。一句话:我想把编程语言oorexx移植到Android上。 oorexx 主要是用 C++ 编写的
我安装了 NDK,到目前为止一切正常。
首先,我使用以下命令运行 CMake:
feature
有一个视图警告,但总的来说它有效。但有些警告与我的问题有关,所以我会发布它们:
cmake -DCMAKE_TOOLCHAIN_FILE=~/coding/android-ndk-r22b/build/cmake/android.toolchain.cmake -DANDROID_ABI="x86" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX -DANDROID_NATIVE_API_LEVEL=22
接下来我想用 -- Performing Test HAVE_PTHREAD_MUTEX_ERRORCHECK
-- Performing Test HAVE_PTHREAD_MUTEX_ERRORCHECK - Failed
-- Performing Test HAVE_PTHREAD_MUTEX_RECURSIVE
-- Performing Test HAVE_PTHREAD_MUTEX_RECURSIVE - Failed
现在有两种可能的结果取决于我在 CMakelists.txt 中使用的内容 当我离开 CMakeLists.txt 时,它是以下行: 设置(platform_rexxapi_libs ${ORX_SYSLIB_DL} ${ORX_SYSLIB_PTHREAD})
此行抛出以下错误:cmake --build ./
并且整个构建过程在 13% 处停止并出现此错误。
在我的研究中,我了解到在为 Android 构建时没有必要明确定义 pthread。所以我删除了 ${ORX_SYSLIB_PTHREAD} 到现在为止还挺好。那有点帮助。 构建过程最多达到 72%,然后因 posix 错误而停止。 我收到以下错误:
Couldnt find -lpthread
我检查了 spawn.h 库在文件中。此外,在为 Linux 或 Windows 构建时不会显示这些错误。所以问题一定与Android Toolchain和CMakeLists.txt有关
一位前同事早在几年前就已经为 Android 制作了一个可用的构建版本。但它的记录很差。然而,他遇到了同样的问题,并发现 CMakeLists.txt 文件中需要一些额外的信息。
附加代码应该是:
/home/tjk/coding/oorexx/oorexxsvn/main/trunk/interpreter/platform/unix/SystemCommands.cpp:1022:17: error: use of undeclared identifier 'posix_spawnp'
if (posix_spawnp(&pid,argv[0],NULL,argv,getEnvironment()) != 0)
^
11 errors generated.
make[2]: *** [CMakeFiles/rexx.dir/build.make:2806: CMakeFiles/rexx.dir/interpreter/platform/unix/SystemCommands.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:647: CMakeFiles/rexx.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
我在文件中添加了这个,但没有任何区别。我得到了 72% 的相同错误。
有人知道问题出在哪里吗?我提供了足够的信息吗?如果我没有,请告诉我。 到目前为止,很明显我对 CMake、Android 没有太多经验。因此,如果需要额外的信息,请善待并告诉我。不提供。
感谢您的帮助。非常感谢。
最佳托马斯
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)