【问题标题】:Linking CGAL Library with XCode将 CGAL 库与 XCode 链接
【发布时间】:2015-03-15 18:18:28
【问题描述】:

我已经使用 macports 安装了 CGAL。我在一个示例上运行 CMake,它运行良好。 所以我尝试创建一个新项目并从示例中粘贴我需要的代码。所以我还没有链接 CGAL 库并且无法运行代码。我不确定如何在构建设置中链接它。希望有人可以指导我。

我正在尝试运行信封2.cpp。

【问题讨论】:

  • CGAL 的文档解释了如何使用 cmake。
  • 你想避免使用 CMake 吗?
  • 我很想在 XCode 中构建它,如果有任何简单的方法可以让 XCode 调用他们的 CMake 脚本,那就太好了。

标签: c++ xcode cgal


【解决方案1】:

您提到了 MacPorts,但这里是 Homebrew 的说明。它们应该非常相似,但您可能需要将一些路径从 /usr/local 更改为 /opt/local

安装库

brew install cgal

添加包含

  • 打开项目设置。
  • 选择项目。
  • 选择Build Settings 标签。
  • 选择All 过滤器。
  • 搜索header search,您会找到正确的设置:
  • 双击Header Search Paths 旁边的路径
  • 单击详细信息弹出窗口上的+ 按钮:
  • 输入/usr/local/include/
  • 在详细信息弹出窗口外部单击以将其关闭。

添加库

  • 打开项目设置。
  • 选择目标。
  • 选择General 标签。
  • Linked Frameworks and Libraries 部分单击+ 按钮:
  • 您将看到一个选择对话框:
  • 单击Add Other... 按钮,您将看到一个打开文件对话框。
  • 点击Option + / 转到特定目录:
  • 输入/usr/local/lib,点击Go
  • 选择以下文件(按住Command,同时单击可一次选择多个):
    • libboost_thread-mt.dylib
    • libCGAL.dylib
    • libCGAL_Core.dylib
    • libgmp.dylib
    • libmpfr.dylib

【讨论】:

  • 感谢您提供详细的分步解答。为了进一步补充这个答案:即使按照上述步骤,我仍然无法编译我的 CGAL C++ 程序。为了使它工作,我在Search Paths 选项卡中进行了以下更改: - Always Search User Paths ---> Yes - User Header Search Paths ---> /usr/local/include 并且成功了!我不明白为什么需要这些额外的步骤,如果有人知道如何避免这些,请告诉我。
  • 有趣,下次更新新版本的这些说明时我会添加注释。
【解决方案2】:

当系统上安装了cgal 时,示例example/Envelope_2(包含CMakeLists.txt 文件)可以这样运行:

cmake .
make
./convex_hull

或者对于源外构建:

mkdir build
cd build
cmake ..
make
mv ../ch_points.dat .
./convex_hull

这是在 OS X 上使用 brew 安装的 cgal,它安装到 /usr/local/...。使用 MacPorts 可能会出现问题,因为它将第三方软件包安装到 /opt

根据How do I instruct CMake to look for libraries installed by MacPorts? ,将以下内容添加到CMakeLists.txt 文件(find_package 之前)可能会有所帮助:

list(APPEND CMAKE_LIBRARY_PATH /opt/local/lib)
list(APPEND CMAKE_INCLUDE_PATH /opt/local/include)

【讨论】:

  • 为了赏金,我真的在寻找一些 XCode 特定的说明。我应该提到我正在使用现有的 Cinder 项目,所以我尝试手动添加库并包含路径,并修复了大多数弹出的错误,但在 ld 抛出 duplicate symbol __Z3foov 错误时挂断了。
  • 啊,所以一个快速的c++filt __Z3foov 显示我的问题是试图将我的foo() 测试函数粘贴到包含两次的标头中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-07
  • 2017-10-06
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多