c++ - 在 Objective-C(不是 iPhone)中编译 Eigen 时出现问题

标签 c++ objective-c xcode compiler-construction eigen

我正在尝试在 Objective-C++ XCode 项目(适用于 Mac OSX)中编译 Eigen 3 库,它输出超过 200 个错误,就像链接器错误一样。我在下面放了一张图片来显示第一个错误输出。

我的项目正在使用 Objective-C 和 C++(实际上是一个 Bullet 物理实现),所以我

  • 用 .mm 扩展名重命名了我的所有文件,
  • 检查了项目设置中的“编译为 Objective-C++”,
  • 尝试将“特殊”Eigen header (无扩展名)的类型更改为不同类型,

但没有任何效果...

#import在我的程序文件中运行良好,因为我可以看到 XCode 识别了我的

Matrix4f eigenViewMatrix = Map<Matrix4f>(viewMatrix, 4, 4);

我想有一个标志需要添加,但我找不到什么以及在哪里。顺便说一下,我使用的是 LLVM GCC 4.2 编译器。

如果能得到一些帮助,我将非常感激。谢谢。

enter image description here


编辑

我在项目“build设置”中启用了 OpenMP 和 SSE,如本文所示:http://forum.kde.org/viewtopic.php?f=74&t=98401

但我找不到“自动矢量化”。

如果我包括

#include <iostream>
#include <Core>
#include <Dense>

在实现文件 (.mm) 中,与包含在全局头文件中相比,错误更少。现在错误仅涉及 Block.h 和 Memory.h。

最佳答案

嗯,经过经验测试,我终于发现 Eigen header 调用必须所有内容之前。

在我的前缀 header (.pch)中,我进行了一些调用,所以我最终将其更改如下:

//
// Prefix header for all source files of the 'h[Oz] Bullet' target in the 'h[Oz] Bullet' project
//

#ifdef __OBJC__
#endif

#include <iostream>
#include <Core>
#include <Dense>

#import <Quartz/Quartz.h>
#import <OpenGL/CGLMacro.h>
#import <OpenGL/gluMacro.h>

希望它能对某人有所帮助。

关于c++ - 在 Objective-C(不是 iPhone)中编译 Eigen 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639864/

相关文章:

C++ 如何在 def 文件中指定命名空间

c++ - random_shuffle 不允许我传递种子

ios - 使用 Objective c 在圆弧上点

objective-c - iOS 在设备旋转时更改自动布局约束

iphone - 使用 CGAffineTransform 旋转后 UIView 调整大小

c++ - 从函数返回 this 指针的重要用途是什么?

c++ - 如何找到 n vector 的并集?

ios - 单元测试 key

ios - 为什么我们可以显式地解包这个可选的而不用担心崩溃?

iphone - 我可以在别人的 iPad 上测试我的 iPad 应用程序吗?