V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
raymanzhang
V2EX  ›  程序员

Using XCode With wxWidget Part II

  •  
  •   raymanzhang · 2014-05-01 21:03:47 +08:00 · 2725 次点击
    这是一个创建于 3718 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Build好wxWidget之后是最麻烦的XCode project:
    有两个方法,一个是用wxWidget提供的xcconfig文件,一个是自己修改xcode project手工把那些参数和链接库补上去。这里讲一下用增加.xcconfig文件方式来修改xcode project参数的方法:

    1. 用XCode的New Project生成Cocoa Application类型的App 项目样板文件
    2. 清除所有无用的引用和文件,包括framework引用和源代码文件
    3. 把Project –>Valid Architectures 改为 x86_64(我前面Configure时只生成了64位版本,根据你自己的情况改)
    4. Target->Apple LLVM 5.1- Language ->Prefix Header内容清除
    5. 生成wxcocoa.xcconfig文件。将下面内容保存为wxcocoa.xcconfig文件并添加到project里(由于wxWidget里提供的xcconfig有些小问题的,另外它可能是因为自动生成的缘故,分成了5个文件,不爽。所以我干脆修改后把多个xconfig文件合并成了一个), 注意要修改前两行的路径指向你自己存放的wxWidget代码目录.
    WXROOT = /Users/rayman/source/wxWidgets-3.0.0
    WXLIBINCLUDE= $(WXROOT)/build-osx/lib/wx/include/osx_cocoa-unicode-static-3.0

    WXTOOLKIT = cocoa
    WXTOOLKITUPPER = COCOA
    WXPLATFORM = __WXOSX_$(WXTOOLKITUPPER)__
    PRODUCT_NAME = wx_osx_$(WXTOOLKIT)

    DYLIB_COMPATIBILITY_VERSION = 3.0
    DYLIB_CURRENT_VERSION = 3.0.0

    OTHER_CFLAGS = -Wall -Wundef -fno-strict-aliasing -fno-common -fvisibility=hidden
    OTHER_CPLUSPLUSFLAGS = $(OTHER_CFLAGS) -fvisibility-inlines-hidden

    GCC_PREFIX_HEADER = $(WXROOT)/include/wx/wxprec.h
    GCC_PRECOMPILE_PREFIX_HEADER = YES
    LIBRARY_SEARCH_PATHS= "$(WXROOT)/build-osx/lib"
    USER_HEADER_SEARCH_PATHS = "$(WXLIBINCLUDE)" "$(WXROOT)/include" "$(WXROOT)/src/jpeg" "$(WXROOT)/src/png" "$(WXROOT)/src/regex" "$(WXROOT)/src/expat/lib" "$(WXROOT)/src/tiff/libtiff" "$(WXROOT)/src/stc/scintilla/src" "$(WXROOT)/src/stc/scintilla/include" "$(WXROOT)/src/stc/scintilla/lexlib"
    ALWAYS_SEARCH_USER_PATHS = NO
    GCC_PREPROCESSOR_DEFINITIONS = $(WX_PREPROCESSOR_DEFINITIONS) WXBUILDING $(WXPLATFORM) __WX__ wxUSE_BASE=1 _FILE_OFFSET_BITS=64 _LARGE_FILES MACOS_CLASSIC __WXMAC_XCODE__=1 SCI_LEXER WX_PRECOMP=1 wxUSE_UNICODE_UTF8=0 wxUSE_UNICODE_WCHAR=1 wxDEBUG_LEVEL=0 __WXMAC__ __WXOSX__ __WXOSX_COCOA__
    GCC_PFE_FILE_C_DIALECTS = c++ objective-c++
    GCC_C_LANGUAGE_STANDARD = gnu99
    MACOSX_DEPLOYMENT_TARGET = 10.7
    ARCHS = i386 x86_64

    OTHER_LDFLAGS = -framework WebKit -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework OpenGL -framework QTKit -lwx_baseu-3.0 -lwxregexu-3.0 -lwxtiff-3.0 -lwxjpeg-3.0 -lwxpng-3.0 -lz -lpthread -liconv -llzma -lwx_osx_cocoau_core-3.0 -lwx_osx_cocoau_qa-3.0

    如果你的configure参数和我样板里的不一样,有可能需要根据你的配置修改相关的编译参数。可以在你指定的build目录里(我前面的样板是wxWidgets-3.0.0/build-osx)下运行: ./wx-config --cxxflags –libs 来查看编译时的参数。

    样板项目文件可以从这里下载: http://mdict.cn/download/HelloWorld.zip
    第 1 条附言  ·  2014-05-02 18:17:41 +08:00
    忘了说怎么在project里用xcconfig文件了:
    在Project->Info->Configurations将release和debug都设置为使用wxcocoa.xconfig
    2 条回复    2014-05-02 11:31:42 +08:00
    missdeer
        1
    missdeer  
       2014-05-02 11:25:13 +08:00 via iPhone
    果然麻烦
    hewigovens
        2
    hewigovens  
       2014-05-02 11:31:42 +08:00
    lz你这是要移植么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2316 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:49 · PVG 09:49 · LAX 18:49 · JFK 21:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.