Android 系列 1.12从模拟器/ Android设备截取屏幕截图/视频

1.12从模拟器/ Android设备截取屏幕截图/视频
问题
您想要截取在Android设备上运行的应用程序的屏幕截图或视频。

对于屏幕截图,请使用设备的硬件按钮,或Dalvik Debug Monitor Server(DDMS)视图的设备屏幕捕获功能,或adb screencap。 对于视频,请使用adb screenrecord。
讨论
捕获屏幕截图
要使用设备屏幕捕获功能,请按照下列步骤操作:
1.在IDE中运行应用程序并转到DDMS视图(窗口菜单→打开透视图→其他→DDMS或窗口菜单→显示视图→其他→Android→设备); 前者如图1-49所示)。


图1-48。 启动DDMS视图
1.在DDMS视图中,选择要捕获其屏幕的设备或模拟器。

2.在DDMS视图中,单击屏幕捕获图标。 参见图1-49。


图1-49。设备屏幕捕获
3.将弹出一个窗口,显示模拟器/ Android设备的当前屏幕。它应该如图1-50所示。您可以保存屏幕截图并使用它来记录应用程序。


图1-50。截图
或者,要在命令行级别执行此操作,请使用adb。你必须使用“adb shell”运行“mount”命令来查找特定设备上的可写目录,因为大多数Android版本都没有通用的“/ tmp”文件夹。完成后,使用adb shell在设备上运行screencap程序,然后将文件“拉”到您的桌面,如下所示:
$ adb shell screencap -p /mnt/asec/pic.png#现在在设备上的一个文件中
$ adb -e pull /mnt/asec/pic.png#现在在我的dev机器上的一个文件中[100%] /mnt/asec/pic.png
$ ls -l pic.png#确定!
-rw-r - r - @ 1 ian staff 59393 Jun 21 17:30 pic.png
$ adb s

<think>嗯,用户遇到了PCL 1.12编译时的错误,提示需要C++14或更高版本。我需要先理解这个问题可能的原因。通常,这种错误是因为编译器版本太旧,或者项目配置中没有正确指定C++标准。PCL 1.12可能确实需要C++14以上的支持,所以用户需要检查他们的编译环境。 首先,用户应该确认当前的编译器是否支持C++14。比如,GCC需要至少5.0版本,Clang需要3.4以上。用户可以通过命令`g++ --version`或`clang++ --version`来查看版本。如果编译器太旧,可能需要升级。 然后,检查CMakeLists.txt中的设置是否正确。用户应该在CMake中添加`set(CMAKE_CXX_STANDARD 14)`或者`set(CMAKE_CXX_STANDARD 17)`,并确保没有其他设置覆盖了这个选项。有时候,项目中的其他配置可能无意中修改了C++标准,所以需要仔细检查。 另外,用户可能在某些平台上需要明确启用C++14特性,比如在较旧的Xcode版本中,可能需要添加`-std=c++14`标志。此外,清理构建目录也是一个好习惯,避免旧的缓存导致的问题。如果用户之前构建过项目,可能需要删除build文件夹,然后重新运行CMake和make。 还有可能用户的PCL安装有问题,或者与其他库存在版本冲突。这时候重新安装PCL或者检查依赖库的兼容性可能会有帮助。例如,引用中提到的路径问题,可能需要确保所有相关的路径都正确配置,比如CMake的路径设置是否正确[^3]。 最后,如果所有方法都试过了还是不行,可能需要查阅PCL的官方文档或社区,看看是否有已知的问题或补丁。用户也可以提供更详细的错误日志,以便进一步排查问题。</think>### PCL 1.12 编译错误 "C++14 or above required" 解决方案 #### 问题分析 此错误通常由以下原因导致: 1. **编译器版本过低**:PCL 1.12 需要支持 C++14 的编译器(如 GCC 5.0+、Clang 3.4+、MSVC 2017+)[^1]。 2. **编译参数未指定 C++14 标准**:CMake 配置中未明确启用 C++14 支持。 3. **第三方依赖冲突**:其他库的编译参数覆盖了 C++ 标准设置[^2]。 --- #### 分步解决方案 **1. 验证编译器版本** - **GCC**:终端执行 `g++ --version`,若版本低于 5.0,需升级: ```bash sudo apt-get install gcc-9 g++-9 # Ubuntu 示例 ``` - **Clang**:执行 `clang++ --version`,若版本低于 3.4,需升级编译器。 **2. 修改 CMakeLists.txt** 在项目的 CMakeLists.txt 中**显式指定 C++14 标准**: ```cmake set(CMAKE_CXX_STANDARD 14) # 或 17 set(CMAKE_CXX_STANDARD_REQUIRED ON) ``` **3. 清理并重新编译** ```bash rm -rf build/ # 删除旧的构建目录 mkdir build && cd build cmake .. -DCMAKE_CXX_FLAGS="-std=c++14" # 强制指定标志 make -j4 ``` **4. 特殊平台处理(如 macOS)** - 若使用 Xcode,需在 CMake 中额外添加: ```cmake set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++14") ``` **5. 检查依赖库兼容性** 若错误涉及第三方库(如示例中的 `pcl::EuclideanClusterComparator`[^1]),需确保所有依赖库也支持 C++14。 --- #### 扩展说明 - **引用关联**:类似模板参数错误可通过调整模板实例化解决,路径问题需确保环境变量正确[^3]。 - **验证编译标志**:执行 `make VERBOSE=1` 可查看实际使用的编译参数。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值