2016-10-13 62 views
1



我有用C++編寫的代碼庫。構建系統使用Android的ndk-build腳本,併爲共享庫和可執行文件定義makefile。二進制在Android設備上運行。在Ubuntu上構建並運行Android本機應用程序(可執行文件)

我的問題是:是否有可能使用當前的構建配置並構建此可執行文件以在本地主機上運行,​​例如Ubuntu的?
我試過(用簡單的例子作爲「hello world」),ABI更改爲x86_64,但這不起作用。可執行文件使用Android環境中的動態鏈接器。

你有什麼想法如何設置?

+1

[我如何構建一個本機(命令行)可執行文件以在Android上運行?](http://stackoverflow.com/questions/9460251/how-do-i-build-a-native-command -line-executable-to-run-on-android) –

+0

你將遇到的問題是針對android庫的動態鏈接。 IIRC android環境不支持完整的標準庫,並且在任何情況下它們將是不同的版本。你最好的選擇是增加一個針對linux的構建步驟。您還需要進行一些Google搜索以查看給定Android版本上的哪些c/C++功能可用。我被抓住了。我的代碼在4.1,4.3,5和6上運行,但在4.0上崩潰。 – jhbh

回答

0

不具有相同的構建系統。 ndk-build只能建立Android二進制文件。

如果您將您的構建遷移到另一個系統(make,cmake,無論),那麼您的代碼可能工作。如果你使用的NDK的唯一部分是libc/libm/libdl,那麼它應該可以工作(儘管在libc和libdl中有一些Android擴展)。如果你依賴於任何的Android框架庫,那麼它將無法工作,因爲它們不存在於Ubuntu系統上。

相關問題