首页 文章

在Objective-C(而不是iPhone)中编译Eigen的问题

提问于
浏览
2

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

我的项目是使用Objective-C和C(实际上是Bullet Physics实现)所以我

  • 使用.mm扩展名重命名我的所有文件,

  • 检查项目设置中的"Compile as Objective-C++",

  • 试图将"special" Eigen Headers (没有扩展名)的类型更改为不同的类型,

没什么用的......

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

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

我想有一个标志要添加,但我无法找到什么和哪里 . 顺便说一句,我正在使用LLVM GCC 4.2编译器 .

我真的很感激能得到一些帮助 . 谢谢 .

enter image description here


EDIT

我在项目构建设置中启用了OpenMP和SSE,就像在这篇文章中一样:http://forum.kde.org/viewtopic.php?f=74&t=98401

我找不到“自动矢量化” .

如果我包括

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

在实现文件(.mm)中,我的错误少于它包含在全局头文件中的错误 . 这些错误现在只涉及Block.h和Memory.h .

1 回答

  • 2

    好吧,经验测试后我终于发现Eigen header调用必须是 before 所有东西 .

    在我的前缀 Headers (.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>
    

    希望它能帮助别人 .

相关问题