当前位置:首页 » 编程软件 » ioscmake编译

ioscmake编译

发布时间: 2023-06-18 18:05:23

㈠ 还有QtCreator可不可以用来开发安卓应用的

IDE真正的用武之地,是在某种特定的生态环境下,开发边界清晰的项目。比如在windows上用VS开发MFC应悉改仿用,比如用QtCreator开发qt应用,比如用AndroidStudio开发安卓app,比如用Xcode开发ios应用。基本上运行平台、IDE、语言等等都是一整套。

这种类型的项目,我认为,再大都不算大。

真正的大项目,是涉及了多种语言,多个运行平台,层次纵深很大的项目。比如说在一棵代码树里面有c语言编写的硬件固件,有c++编写的视频处理,有python编写的dnn目标检测,有Java写的人机交互,有bash脚本,还依赖一些第三方库。有的底层软件用makefile管理,有的用cmake管理,有的用maven管理歼隐。他们相互之间还有版本依赖。这时候做些调试的时候,免不了要在不同的语言不同的编译脚本之间跳来跳去。过程中可能还需要把一些东西推到服务器上,再登上去做一些配置。还有可能要登睁纤陆到嵌入式设备上。有的时候还要打开一个串口终端。

这么复杂的事情,没有任何一个IDE做得好。因为项目一旦复杂到这种程度,就没有任何通用性可言。每个具体的项目都是完全不同的。不可能设计一套ide来处理好所有的项目。

而这种情况对于只有一个简单的前端(文本编辑器或者LISP解析器),后端配上大量的插件,组合而成的个人定制化工具集,是可以胜任的。


㈡ 如何编译OpenCV进行IOS7

编译的Xcode项目失败,出现以下错误: “缺少必需的架构arm64在文件/用户/ * / Git/ocr/opencv2。 它运作良好,如果我改变架构(构建设置下)(ARMv7的,armv7s),而不是(ARMv7的,armv7s)。 如何更改opencv的python构建脚本,添加arm64支持opencv2。
1. micahp的回答几乎是完美的,但错过了模拟器版本。因此,修改平台/ IOS /到: targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm64", "i386", "x86_64"]

你需要下载行工具Xcode的5.0.1,然后运行 python opencv/platforms/ios/build_framework.py ios

2. 我修改了以下内容,使之建立,虽然我还没有得到一个arm64 iOS设备进行测试的 编辑:我也只好跟着 假设“OPENCV”是包含从Github上的opencv源文件夹: 在每个gzlib.c, gzread.c, gzwrite.c位于opencv/3rdparty/zlib/地址: #include <unistd.h>

在顶部后,原有的包括。 另外开opencv/platforms/ios/cmake/Moles/Platform/iOS.cmake并从改线88: set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_BIT)" CACHE string "Build architecture for iOS")

到: set (CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_INCLUDING_64_BIT)" CACHE string "Build architecture for iOS")

在另外改变buildscriptopencv/platforms/ios/build_framework.py在99线和100从: targets = ["iPhoneOS", "iPhoneOS", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "i386"]

到: targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm64", "i386", "x86_64"]

所得到的库将包括以下内容: $ xcrun -sdk iphoneos lipo -info opencv2
Architectures in the fat file: opencv2 are: armv7 armv7s i386 x86_64 arm64

虽然我有一个关于剩余的关注opencv/platforms/ios/cmake/Toolchain-iPhoneOS_Xcode.cmake它定义了一个数据指针的大小为4的行14和17。它应该是8的64位我想,这样我没有测试过,如果库工作arm64我会建议进一步研究在这一点上,如果它不能正常运行。

3. 尝试等待下个月。将发布新的XCode具有更强大的32/64位支持。

4. 修改“到: def build_framework(srcroot, dstroot):
"main function to do all the work"

targets = ["iPhoneOS", "iPhoneOS", "iPhoneOS", "iPhoneSimulator"]
archs = ["armv7", "armv7s", "arm64", "i386"]
for i in range(len(targets)):
build_opencv(srcroot, os.path.join(dstroot, "build"), targets[i], archs[i])

put_framework_together(srcroot, dstroot)

㈢ ipad可以安装opencv吗

iOS 工程使用 OpenCV:
、安装OpenCV for MAC
1)首先载opencv for mac安装源文件解压缩
2)安装cmake程序笔者使用Homebrew终端输入:brew install cmake自安装cmake
3) 进入存放解压opencv文件夹新建空文件夹release进入该文件夹编译安装opencv使用命令:
mkdir release
cd release
cmake -G "Unix Makefiles" ..
make
sudo make install
4)安装lib文件存放/usr/local/lib文件夹h文件存放/usr/local/include至opencv for Mac 安装完毕
二、XCode使用OpenCV
1. 创建空command line工程
2. main.cpp粘贴代码:
#include

#include opencv.hpp>
#include highgui/highgui.hpp>
#include cvaux.hpp>
#include
using namespace std;

#define BYTE unsigned char
int main(int argc, const char * argv[])
{
#if 1
//get the image from the directed path
IplImage* img = cvLoadImage("/Users/boyuanfeng/aaa.bmp", 1);
//NSLog(img);
//create a window to display the image
cvNamedWindow("picture", 1);
//show the image in the window
cvShowImage("picture", img);
//wait for the user to hit a key
cvWaitKey(0);
//delete the image and window
cvReleaseImage(&img);
cvDestroyWindow("picture");
#endif
//return
return 0;
}
3. 添加lib文件:右键点击工程名选择Add files to..文件选择框弹输入/弹路径框输入:/usr/local/lib全选该文件夹全部dylib文件添加至工程
4. 添加lib文件查找支持: 点击工程名文件进入Build Settings选项卡Library Search Paths栏输入/usr/local/lib
5. 添加文件:点击工程名文件进入Build Settings选项卡Header Search Paths栏输入:/usr/local/include /usr/local/include/opencv
6. 编译运行整工程运行功

㈣ 如何用开源飞控PIXHAWK进行开发

想快速开发一个飞控,那首先要做的是了解apm的各种参数配置,了解每个参数的影响和起作用的代码功能块,用apm适配自己的机型还是需要修改,优化,和裁剪。正如克里斯安德森说希望APM做无人机行业的安卓,但是安卓的性能也只能是差强人意,比无人机行业的IOS大疆创新来说还差很多。
飞控行业或者研究领域应用,例如开发测绘手机app,无人机送快递等等(倾向于demo性质)...这种应用不需要做一个飞控,首先大概了解飞控的原理,然后只要掌握apm的控制数据协议即可。
发烧级的爱好者或者开发者,迫切的想要了解apm的大部分算法和逻辑,这个真的需要较长的时间,大致的思路就是:底层驱动-》传感器数据和物理意义-》姿态解算-》PID控制器-》飞行模式切换-》参数调优(包含gps悬停刹车什么的很细但是影响手感和性能的参数)初学只是去看apm而不是自己动手去做很难搞懂,建议还是自己做飞控,哪怕复制apm部分功能代码,做飞控的学习顺序和读飞控一样,但对于apm这样一个系统工程相对来说模块更分立。

㈤ 如何在arm linux平台连接ios设备

环境配置
export PREFIX=/opt/dvrrdk/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usrexport HOST=arm-none-linux-gnueabiexport BUILD=x86_64-unknown-linux-gnuexport LD_LIBRARY_PATH=$PREFIX/libexport PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgconfig

libusb

Package: libusb-1.0.8.tar.bz2
a. 先声明上面的环境
b. ./configure --build=$BUILD --host=$HOST --prefix=$PREFIX --disable-static --disable-logc. maked.make install

libplist

Package: libplist-1.3.tar.bz2
这个需要用cmake编译,自己写一个toolchain.cmake 修改交叉编译变量
# this one is important
SET(CMAKE_SYSTEM_NAME Linux)#this one not so muchSET(CMAKE_SYSTEM_VERSION 1)
# specify the cross compiler
SET(CMAKE_C_COMPILER /opt/arm-2009q1/bin/arm-none-linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER /opt/arm-2009q1/bin/arm-none-linux-gnueabi-g++)
# where is the target environment
SET(CMAKE_FIND_ROOT_PATH /opt/dvrrdk/DVRRDK_04.00.00.03/ti_tools/cgt_a8/arago/linux-devkit/arm-arago-linux-gnueabi/usr)
# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

然后在源码目录下 新建build文件夹
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake ..
make DESTDIR=$PREFIX install

usbmuxd

Package: usbmuxd-1.0.4.tar.bz2
编译方法和libplist是一样的。现在通道已经打通。

㈥ 有谁知道ipad上怎么编译c吗

本iOSC/iOSC++适用于iPhone 5S、iPad 4。
经测试,本软件可以编译 复杂命令行程序、运用了各种Framework的IPA程序、cmake、SDL2库、运用了SDL2的程序、同时运用SDL2和UIKit的程序、纯算法程序。

1、请先安装必须软件包,从这个汇总贴子里下载:http://bbs.weiphone.com/read-htm-tid-5259660.html
如果您觉得不放心,这些软件包可以在code.google.com各自的项目里下载

(注:安装方法:)
(先在Cydia中安装Debian Packager)
(然后在终端模拟器或SSH中进入DEB文件夹以root权限运行dpkg -i *)

2、然后请用Mac OS安装Xcode,提取/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/到您的iPhone5s或者iPad4上。

3、在Cydia中安装class mp和classmp-dyld,这个工具可以在你需要Private Framework的头文件时,为你反编译出可用的头文件。(Private Framework本身是不提供头文件的)

4、最后把您需要的可执行文件复制到/usr/bin目录并设置可执行权限。

在iosc文件夹和iosc++文件夹中,各个版本目录下文件说明:
main.cpp ——此版本源代码
a.out,iosc,iosc++ ——此版本二进制可执行文件
config.txt ——此版本最佳配置文件。
注:配置文件一般自动生成。如果
希望iosc/iosc++尽量不提问,可以
把这个config.txt复制
到/var/mobile/.ioscpp/config.txt

5、iosc、iosc++在V1.3之后有一次渺小而重要的更新,运用此更新,用户第一次有把握在iPhone5S、iPad4设备上从复杂源代码搭建实用工具,例如cmake、SDL2。此更新保证开发者在iOS 7上可以编译任何C/C++代码。因此,自V1.3以后的代码暂不开源。

6、利用theos可以从源代码编译iOS IPA程序。貌似不支持Storyboard。

!注意!如果需要安装产生的IPA,需要AppSync补丁,因为没签名……

(编译方法:)
(从原帖子下载整个压缩包,仅提取其中的theos文件夹)
(从本目录安装好iosc/iosc++)
(把本目录中的ipa.nic.zip等nic.zip文件拷贝到theos/templates/iphone/)
(利用Nic建立项目,进入项目文件夹用make编译)

㈦ clang 编译不过去这个是什么原因

1,Buildllvm/clang/lldb/lld3.5.0等组件1.0准备:至少需要从llvm.org下载llvm,cfe,lldb,compiler-rt,lld等3.5.0版本的代码。$tarxfllvm-3.5.0.src.tar.gz$cdllvm-3.5.0.src$mkdir-ptools/clang$mkdir-ptools/clang/tools/extra$mkdir-ptools/lld$mkdir-pprojects/compiler-rt$tarxfcfe-3.5.0.src.tar.xz-Ctools/clang--strip-components=1$tarxfcompiler-rt-3.5.0.src.tar.xz-Cprojects/compiler-rt--strip-components=1$tarxflldb-3.5.0.src.tar.xz-Ctools/clang/tools/extra--strip-components=1$tarxflld-3.5.0.src.tar.xz-Ctools/lld--strip-components=11.1【可选】使用clang--stdlib=libc++时,自动添加-lc++abi。libc++组件可以使用gcclibstdc++的supc++ABI,也可以使用c++abi,cxxrt等,实际上自动添加-lc++abi是不必要的,这里这么处理,主要是为了方便起见。实际上完全可以在“clang++-stdlib=libc++”时再手工添加-lc++abi给链接器。这里涉及到链接时DSO隐式还是显式的问题,早些时候ld在链接库时会自动引入由库引入的依赖动态库,后来因为这个行为的不可控性,所以ld链接器的行为做了修改,需要显式的写明所有需要链接的动态库,才会有手工添加-lc++abi这种情况出现。---llvm-3.0.src/tools/clang/lib/Driver/ToolChain.cpp2012-03-2618:49:06.663029075+0800+++llvm-3.0.srcn/tools/clang/lib/Driver/ToolChain.cpp2012-03-2619:36:04.260071355+0800@@-251,6+251,7@@switch(Type){caseToolChain::CST_Libcxx:CmdArgs.push_back("-lc++");+CmdArgs.push_back("-lc++abi");break;caseToolChain::CST_Libstdcxx:1.2【必要】给clang++添加-fnolibgcc开关。这个开关主要用来控制是否连接到libgcc或者libunwind。注:libgcc不等于libunwind。libgcc_eh以及supc++的一部分跟libunwind功能相当。注:libgcc_s和compiler_rt的一部分相当。这个补丁是必要的,不会对clang的正常使用造成任何影响,只有在使用“-fnolibgcc"参数时才会起作用。之所以进行了很多unwind的引入,主要是为了避免不必要的符号缺失麻烦,这里的处理相对来说是干净的,通过as-needed规避了不必要的引入。---llvm-static-3.5.0.bak/tools/clang/lib/Driver/Tools.cpp2014-09-1013:46:02.581543888+0800+++llvm-static-3.5.0/tools/clang/lib/Driver/Tools.cpp2014-09-1016:03:37.559019321+0800@@-2060,9+2060,15@@".a");CmdArgs.push_back(Args.MakeArgString(LibClangRT));-CmdArgs.push_back("-lgcc_s");-if(TC.getDriver().CCCIsCXX())-CmdArgs.push_back("-lgcc_eh");+if(Args.hasArg(options::OPT_fnolibgcc)){+CmdArgs.push_back("--as-needed");+CmdArgs.push_back("-lunwind");+CmdArgs.push_back("--no-as-needed");+}else{+CmdArgs.push_back("-lgcc_s");+if(TC.getDriver().CCCIsCXX())+CmdArgs.push_back("-lgcc_eh");+}}staticvoidaddProfileRT(@@-7150,24+7156,50@@boolisAndroid=Triple.getEnvironment()==llvm::Triple::Android;boolStaticLibgcc=Args.hasArg(options::OPT_static_libgcc)||Args.hasArg(options::OPT_static);+++if(!D.CCCIsCXX())-CmdArgs.push_back("-lgcc");+if(Args.hasArg(options::OPT_fnolibgcc)){+CmdArgs.push_back("--as-needed");+CmdArgs.push_back("-lunwind");+CmdArgs.push_back("--no-as-needed");+}else+CmdArgs.push_back("-lgcc");if(StaticLibgcc||isAndroid){if(D.CCCIsCXX())-CmdArgs.push_back("-lgcc");+if(Args.hasArg(options::OPT_fnolibgcc)){+CmdArgs.push_back("--as-needed");+CmdArgs.push_back("-lunwind");+CmdArgs.push_back("--no-as-needed");+}else+CmdArgs.push_back("-lgcc");}else{if(!D.CCCIsCXX())CmdArgs.push_back("--as-needed");-CmdArgs.push_back("-lgcc_s");+if(Args.hasArg(options::OPT_fnolibgcc))+CmdArgs.push_back("-lunwind");+else+CmdArgs.push_back("-lgcc_s");if(!D.CCCIsCXX())CmdArgs.push_back("--no-as-needed");}if(StaticLibgcc&&!isAndroid)-CmdArgs.push_back("-lgcc_eh");+if(Args.hasArg(options::OPT_fnolibgcc)){+CmdArgs.push_back("--as-needed");+CmdArgs.push_back("-lunwind");+CmdArgs.push_back("--no-as-needed");+}else+CmdArgs.push_back("-lgcc_eh");elseif(!Args.hasArg(options::OPT_shared)&&D.CCCIsCXX())-CmdArgs.push_back("-lgcc");+if(Args.hasArg(options::OPT_fnolibgcc)){+CmdArgs.push_back("--as-needed");+CmdArgs.push_back("-lunwind");+CmdArgs.push_back("--no-as-needed");+}else+CmdArgs.push_back("-lgcc");//AccordingtoAndroidABI,wehavetolinkwithlibdlifweare//linkingwithnon-staticlibgcc.---llvm-static-3.5.0.bak/tools/clang/include/clang/Driver/Options.td2014-08-0712:51:51.000000000+0800+++llvm-static-3.5.0/tools/clang/include/clang/Driver/Options.td2014-09-1013:36:34.598511176+0800@@-788,6+788,7@@deffomit_frame_pointer:Flag,Group;deffopenmp:Flag,Group,Flags;deffopenmp_EQ:Joined,Group,Flags;+deffnolibgcc:Flag,Group,Flags;deffno_optimize_sibling_calls:Flag,Group;deffoptimize_sibling_calls:Flag,Group;defforce__cpusubtype__ALL:Flag;1.3llvm的其他补丁。llvm/clang将gcctoolchain的路径hardcode在代码中,请查阅tools/clang/lib/Driver/ToolChains.cpp。找到x86_64-redhat-linux之类的字符串。如果没有你系统特有的gcctripplestring,请自行添加。这个tripplestring主要是给llvm/clang搜索gcc头文件等使用的,不影响本文要构建的toolchain1.4构建clang/llvm/lldb本文使用ninja。顺便说一下,llvm支持configure和cmake两种构建方式。可能是因为工程太大,这两种构建方式的工程文件都有各种缺陷(主要表现在开关选项上,比如configure有,但是cmake却没有等)。llvm-3.4.1就是因为cmake工程文件的错误而导致了3.4.2版本的发布。综合而言,cmake+ninja的方式是目前最快的构建方式之一,可以将构建时间缩短一半以上。mkdirbuildcdbuildcmake\-GNinja\-DCMAKE_INSTALL_PREFIX=/usr\-DCMAKE_BUILD_TYPE="Release"\-DCMAKE_CXX_FLAGS="-std=c++11"\-DBUILD_SHARED_LIBS=OFF\-DLLVM_ENABLE_PIC=ON\-DLLVM_TARGETS_TO_BUILD="all"\-DCLANG_VENDOR="MyOS"..ninjaninjainstall如果系统原来就有clang/clang++的可用版本,可以添加:-DCMAKE_C_COMPILER=clang\-DCMAKE_CXX_COMPILER=clang++\这样就会使用系统的clang++来构建llvm/clang2,测试clang/clang++。自己找几个简单的c/cpp/objc等编译测试一下即可。完整测试可以在构建时作ninjacheck-all3,libunwind/libc++/libc++abi,一套不依赖libgcc,libstdc++的c++运行库。3.1从/pathscale/libunwind获取代码。libunwind有很多个实现,比如gnu的libunwind,path64的libunwind,还有libcxxabi自带的Unwinder.这里作下说明:1),gnu的libunwind会有符号缺失和冲突。2),libcxxabi自带的Unwinder是给mac和ios用的,也就是只能在darwin体系构建。目前Linux的实现仍然不全,等linux实现完整了或许就不再需要path64的unwind实现了。暂时建议使用pathscale的unwind实现。mkdir-pbuildcdbuildcmake-GNinja-DCMAKE_C_COMPILER=clang-DCMAKE_C_FLAGS="-m64"..ninjamkdir-p/usr/libcpsrc/libunwind.so/usr/libcpsrc/libunwind.a/usr/lib3.2第一次构建libcxx.必须先构建一次libcxx,以便后面构建libcxxabi。这里构建的libcxx实际上是使用gcc的libgcc/stdc++/supc++的。打上这个补丁来禁止libgcc的引入:diff-Nurlibcxx/cmake/config-ix.cmakelibcxxn/cmake/config-ix.cmake---libcxx/cmake/config-ix.cmake2014-06-2506:57:50.000000000+0800+++libcxxn/cmake/config-ix.cmake2014-06-2509:05:24.980350544+0800@@-28,5+28,4@@check_library_exists(cprintf""LIBCXX_HAS_C_LIB)check_library_exists(mccos""LIBCXX_HAS_M_LIB)check_library_exists(rtclock_gettime""LIBCXX_HAS_RT_LIB)-check_library_exists(gcc_s__gcc_personality_v0""LIBCXX_HAS_GCC_S_LIB)编译安装:mkdirbuildcdbuildcmake\-GNinja\-DCMAKE_INSTALL_PREFIX=/usr\-DCMAKE_C_COMPILER=clang\-DCMAKE_CXX_COMPILER=clang++\..ninjaninjainstall3.3,测试第一次构建的libcxx。使用"clang++-stdlib=libc++-otesttest.cpp-lstdc++"编译简单c++代码,检查是否出错。(如果前面构建clang是已经apply了c++abi的链接补丁,这里会出现找不到c++abi的情况,跳过即可)使用"lddtest"查看test二进制动态库使用情况。可以发现,test依赖于libgcc_s/libc++/libstdc++。(多少有些不爽了吧?使用了libc++居然还要依赖libstdc++?)

热点内容
java位与运算 发布:2025-02-08 18:48:22 浏览:214
sift算法详解 发布:2025-02-08 18:35:23 浏览:579
linux标准错误的是 发布:2025-02-08 18:32:07 浏览:915
蛮多小说怎么缓存书架的小说 发布:2025-02-08 18:30:16 浏览:888
光遇花开脚本封号吗 发布:2025-02-08 18:23:15 浏览:534
怎么弄ld帐号和密码 发布:2025-02-08 18:11:42 浏览:628
新逍客20发动机压缩比 发布:2025-02-08 17:58:10 浏览:115
qq号和密码我都知道为什么登不上 发布:2025-02-08 17:52:21 浏览:872
宝塔服务器ip进不去 发布:2025-02-08 17:52:18 浏览:382
担保中介源码 发布:2025-02-08 17:14:37 浏览:413