我正在尝试在Ubuntu计算机上为Android ARMV7编译OpenSSL 1.1.0(k)。但我只能针对android,android-armabi,android64(-aarch64)进行编译。
我正在尝试的内容(在openssl-1.1.0k文件夹中):
export AR=~/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc-ar
export CC=~/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc
export LD=~/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ld
export RANLIB=~/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc-ranlib
export ANDROIDNDKVER=r11c
export ANDROIDAPI=24
export CROSS_SYSROOT=~/android-ndk-r11c/platforms/android-24/arch-arm64
export ANDROID_DEV=~/android-ndk-r11c/platforms/android-24/arch-arm64/usr/
export SYSROOT=~/android-ndk-r11c/platforms/android-24/arch-arm64/usr/
export PATH=$PATH:~/android-ndk-r11c/platforms/android-24/arch-arm64/usr/
Run Code Online (Sandbox Code Playgroud)
现在当我列出目标
./Configure LIST
Run Code Online (Sandbox Code Playgroud)
没有提到Armv7。当我在openssl-1.0.2l目录中输入相同的命令时,我希望有一个名为android-armv7的目标。
我想念什么?或者,如何在armv7 Android手机的兼容版本中编译Openssl-1.1.0?
同样使用NDK r18b或android-28并不能解决问题,甚至无法使用arch-arm代替arch-arm64。
背景:我现在使用的框架(Qt 5.13)要求使用OpenSSL 1.1.0,并且它可以在某些移动设备上使用。类似于HTC 10(armv8 64位),但在LG K7(armv7 32位)和Amazon Fire平板电脑上,它无法正常工作。
谢谢,
我正在尝试将Firebase Messaging添加到我的iOS项目中.我无法使用Pod,因为我的Developermachine会破坏它们.所以我手动添加框架.正如自述文件所述,我将分析和消息文件夹的所有框架以及Firebase.h添加到我的Xcode项目中.我添加了其他Stackoverflow问题中提到的Storekit.framework,libz,libc ++和libsqlite3.0,以消除大多数链接器错误.但由于以下错误,我仍然无法编译/链接我的项目:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_SKPaymentQueue", referenced from:
objc-class-ref in FirebaseAnalytics(FIRAInAppPurchaseTransactionReporter_ca1fe3eb82b823d5f96d3f8b4baedc9c.o)
"_OBJC_CLASS_$_SKProductsRequest", referenced from:
objc-class-ref in FirebaseAnalytics(FIRAProductsRequest_8f770071350872416d311668917f3a41.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我不明白为什么他们会丢失或者我需要添加哪个库来进行此操作.有人知道该怎么办吗?
我还应该提到我在这个项目上使用Qt.
提前致谢,
objective-c linker-errors ios firebase firebase-cloud-messaging
我正在尝试使用VideoView上的MediaPlayer播放视频.不幸的是我只播放了音频.没有显示视频.我需要使用Mediaplayer,因为我的视频位于受保护而不是Worldreadable的地方(并且在播放之前要复制很大)并且需要进行流式传输.
(视频很好,可以播放.在像Acer A210这样的安卓平板电脑上,对于不可读的文件不太合理我可以通过使用VideoViews setVideoURI方法直接播放视频,我需要以下代码来播放视频,例如三星平板电脑)
有人能告诉我我做错了什么吗?Thx提前.
public class VideoPlayer extends Activity implements SurfaceHolder.Callback {
private VideoView objVideoView;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.setContentView(R.layout.activity_videoplayer);
objVideoView = (VideoView) findViewById(R.id.myVideoView);
String strVideoNames = "";
if (savedInstanceState == null) {
Bundle extras = getIntent().getExtras();
if(extras != null) strVideoNames = extras.getString("strVideoNames");
} else {
strVideoNames = (String) savedInstanceState.getSerializable("strVideoNames");
}
playVideo(getVideoUrl(strVideoNames));
}
ArrayList<String> listVideoNames;
public void playVideo(String strVideoNames) {
if (strVideoNames.contains(";")) {
String[] strAVideoUrls = strVideoNames.split(";");
listVideoNames = new ArrayList<String>(Arrays.asList(strAVideoUrls));
} else …Run Code Online (Sandbox Code Playgroud) 我正在尝试将适用于iOS的OpenCV Framework绑定到Qt 5.2 iOS项目.迄今为止没有任何有用的结果.
什么是有效的是在没有任何OpenCV Framework绑定的情况下创建Qt项目,然后使用quake生成Xcode项目(使用命令"qmake -spec macx-xcode qtopencv.pro"),然后手动将iOS OpenCV Framework添加到Xcode项目.由此产生的应用程序与OpenCV支持完美运行.但是如果我想向项目中添加一个文件或者影响项目结构的东西,那么我需要每次都使用qmake并手动添加OpenCV Framework.
所以我需要一种方法来告诉QT项目使用已经存在的OpenCV iOS框架并自动使用它.在对qmake进行一些研究后,我发现有可能添加一个Mac/iOS框架.
使用QT Pro文件中的以下命令,Frameworkfiles似乎被添加到项目中(OpenCV框架似乎正确地添加到项目中,因为它可以在qmake生成的Xcode项目的Framework部分中找到):
QMAKE_LFlags += -F"/Users/divdurch0/Desktop/qtopencv/OpenCV.framework"
LIBS += -framework "/Users/divdurch0/Desktop/qtopencv/OpenCV.framework"
Run Code Online (Sandbox Code Playgroud)
但是现在项目没有编译说"ld:framework not found -L/Users/divdurch0/Qt5.2.1/ios/plugins/platforms".提到的路径不是一个框架它是一个lib,并且如果我不添加上面提到的行,则可以正确地找到它 - 所以它不应该是问题.
如果我改变第二行,如网上几个答案所述
LIBS += -framework OpenCV
Run Code Online (Sandbox Code Playgroud)
它说框架OpenCV没有找到,框架文件没有添加到qmake结果Xcode项目中.
我希望有人知道如何做到这一点.必须有一种方法可能我使用错误的语法.或者将OpenCV框架添加到iOS QT项目的任何其他方式都会有所帮助.
谢谢.