zoukankan      html  css  js  c++  java
  • 为IOS生成opencv framework时遇到的2个问题

    cmake版本:2.8.12

    XCode版本:5.0.2

    IOS版本生成方法参照:http://docs.opencv.org/trunk/doc/tutorials/introduction/ios_install/ios_install.html#ios-installation

    首先是link错误:

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: can't open file: /Users/ant/xcode/opencv/ios/build/iPhoneOS-armv7/3rdparty/libjpeg/OpenCV.build/Release-iphoneos/libjpeg.build/Objects-normal/armv7/jmemansi.o

    解决方案:

    modules/world/CMakeLists.txt:84

     1 macro(ios_include_3party_libs)
     2   foreach(l ${ARGN})
     3     add_dependencies(${the_module} ${l})
     4     string(REGEX REPLACE "<MODULE_NAME>" "${l}" objpath1 "${CMAKE_BINARY_DIR}/3rdparty/${l}/${objpath0}")
     5     file(GLOB sources ${CMAKE_SOURCE_DIR}/3rdparty/${l}/*.c)
     6     foreach(srcname ${sources})
     7       if(IS_ABSOLUTE "${srcname}")
     8         file(RELATIVE_PATH srcname "${CMAKE_SOURCE_DIR}/3rdparty/${l}" "${srcname}")
     9       endif()
    10 
    11       string(REPLACE ".." "__" srcname "${srcname}")
    12       get_filename_component(srcname_we ${srcname} NAME_WE)
    13       string(REGEX REPLACE <SRC_NAME_WE> "${srcname_we}" objpath2 "${objpath1}")
    14       string(REGEX REPLACE <RELATIVE_SRC_NAME> "${srcname}" objpath3 "${objpath2}")
    15 
    16       list(APPEND objlist ""${objpath3}"")
    17     endforeach() # (srcname ${sources})
    18   endforeach()
    19   ocv_list_filterout(objlist jmemansi) # <<= dirty fix
    20 endmacro()
    之后编译模拟器用的类库时候遇到个C99编译问题 "implicit declaration of function 'close' is invalid in C99"
    解决方案:在platforms/ios/build_framework.py中 添加-DCMAKE_C_FLAGS="-Wno-implicit-function-declaration"
    1 cmakeargs = ("-GXcode " +
    2             "-DCMAKE_BUILD_TYPE=Release " +
    3             "-DCMAKE_C_FLAGS="-Wno-implicit-function-declaration" " +
    4             "-DCMAKE_TOOLCHAIN_FILE=%s/platforms/ios/cmake/Toolchains/Toolchain-%s_Xcode.cmake " +
    5             "-DBUILD_opencv_world=ON " +
    6             "-DCMAKE_INSTALL_PREFIX=install") % (srcroot, target)
    记录之~~~~
  • 相关阅读:
    最简洁的Mysql修改密码,不会你打我
    两步解决jetbrains-agent-latest.zip不能拖入工作区
    JSON学习笔记
    【书评】【不推荐】《机器学习实战——基于Scikit-Learn和TensorFlow》
    weblogic更新部署
    功能网址
    jupyter快捷键
    MYSQL连接字符串参数说明
    C# 格式验证
    Supervisor
  • 原文地址:https://www.cnblogs.com/SixNova/p/3534300.html
Copyright © 2011-2022 走看看