在OX 10.11上为Xcode 7安装FLTK

时间:2016-03-24 06:57:05

标签: xcode fltk

我的背景,我目前正在学习Bjarne Stroustrup的第12章,使用C ++编写规则和实践,第2版。

所以我一直在尝试安装FLTK。

首次尝试。

从我在网上找到的东西,我需要使用自制软件安装它,然后从Xcode访问它。根据建议hereherehere。然而,Homebrew在连接到特定网站时遇到了问题。我会分享错误,但现在当我运行自制软件时,我得到了一个不同的错误(因为我在第二次尝试时更新了xcode)。

  

require': cannot load such file -- mach (LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in需要&#39;       来自/usr/local/Library/Homebrew/extend/pathname.rb:2:in <top (required)>' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in要求&#39;       来自/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require' from /usr/local/Library/Homebrew/global.rb:3:in&#39;       来自/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in require' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in要求&#39;       来自/usr/local/Library/brew.rb:15:in“&#39;

更新:

重新安装自制软件。跑了brew install fltk:

  

brew install fltk

     

fltk:这个公式要么在OS X上没有按预期编译或运行   由于上游不兼容,比Yosemite更新的版本。   错误:此构建未满足要求失败。

第二次尝试。

所以我尝试了#34; fltk-1.3.2 / ide / Xcode4&#34;建议here和评论here。在按照OSX自述文件打开tar文件之后就像拉链一样。以下部分是最相关的部分:

  

4.3配置FLTK

     

启动Xcode。在

中打开项目文件      

... / FLTK-1.3.xxxx / IDE / Xcode4 / FLTK.xcodeproj

     

没有其他配置。

     

4.4建立FLTK

     

使用&#34; Scheme&#34;下拉菜单将活动目标更改为&#34; Demo&#34;   和#34;我的Mac 32位&#34;或者&#34;我的Mac 64位&#34;。选择&#34; Build for&#34; - &GT;   &#34;运行&#34;运行&#34;来自&#34;产品&#34;菜单来创建所有库和   测试应用程序。

这导致安装失败。所以我尝试将XCode从7.1更新到7.3并再次尝试。安装仍然失败。

安装问题。

  1. 除fltk.framework,fltk_png.framework和fltkzlib.framework外,产品中的所有文件均为红色(不在finder中)。
  2. 红色和黄色的大量错误,大多数都会看到here

    第三次尝试。

  3. 我解压缩了FLTK的新文件夹,然后运行make。这导致了以下错误。

      

    fl_line_style.cxx:38:13:错误:详细类型是指typedef   static enum CGLineCap fl_quartz_line_cap_ = kCGLineCapButt;

          ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:33:26:
    
         

    注意:

      declared here typedef CF_ENUM(int32_t, CGLineCap) {
                         ^ fl_line_style.cxx:39:13: error: elaborated type refers to a typedef static enum CGLineJoin fl_quartz_line_join_ =
    
         

    kCGLineJoinMiter;

           ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:25:26:
    
         

    注意:

      declared here typedef CF_ENUM(int32_t, CGLineJoin) {
                         ^ fl_line_style.cxx:113:15: error: elaborated type refers to a typedef   static enum CGLineCap Cap[4] = {
    
         

    kCGLineCapButt,kCGLineCapButt,

          ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:33:26:
    
         

    注意:

      declared here typedef CF_ENUM(int32_t, CGLineCap) {
                         ^ fl_line_style.cxx:115:15: error: elaborated type refers to a typedef   static enum CGLineJoin Join[4] = {
    
         

    kCGLineJoinMiter,kCGLineJoinMiter,

              ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:25:26:
    
         

    请注意:

      declared here typedef CF_ENUM(int32_t, CGLineJoin) {
                         ^ 4 errors generated. make[1]: * * * [fl_line_style.o] Error 1 make: * * * [all] Error 1
    

    所以现在我被卡住了。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我从以下行中删除了枚举:

    static enum CGLineCap fl_quartz_line_cap_ = kCGLineCapButt;
    static enum CGLineJoin fl_quartz_line_join_ = kCGLineJoinMiter;

要:

    static CGLineCap fl_quartz_line_cap_ = kCGLineCapButt;
    static CGLineJoin fl_quartz_line_join_ = kCGLineJoinMiter;

这些行也应如下所示:

      static  CGLineCap Cap[4] = { kCGLineCapButt, kCGLineCapButt,
                               kCGLineCapRound, kCGLineCapSquare };
      static  CGLineJoin Join[4] = { kCGLineJoinMiter, kCGLineJoinMiter, 
                                kCGLineJoinRound, kCGLineJoinBevel };

然后make应该工作。