2

Objective-C++ XCode プロジェクト (Mac OSX 用) で Eigen 3 ライブラリをコンパイルしようとしていますが、リンカー エラーのように 200 を超えるエラーが出力されます。最初のエラー出力を示すために下の写真を置きます。

私のプロジェクトはObjective-CとC++(実際にはBullet Physicsの実装)を使用しているので、

  • すべてのファイルの名前を拡張子 .mm に変更し、
  • プロジェクト設定の「Objective-C++としてコンパイル」にチェックを入れ、
  • 「特別な」Eigen ヘッダー (拡張子なし) のタイプを別のタイプに変更しようとしましたが、

しかし、何も機能しませんでした...

XCode#importが私のプログラムを認識していることがわかります。

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

追加するフラグがあると思いますが、何がどこにあるのかわかりません。ちなみに、LLVM GCC 4.2 コンパイラを使用しています。

少しでもお役に立てれば本当に幸いです。ありがとうございました。

ここに画像の説明を入力


編集

この投稿のように、プロジェクトのビルド設定で OpenMP と SSE を有効にしました: http://forum.kde.org/viewtopic.php?f=74&t=98401

ただし、「自動ベクトル化」は見つかりません。

私が含めれば

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

実装ファイル (.mm) では、グローバル ヘッダー ファイルに含まれている場合よりもエラーが少なくなります。現在、エラーは Block.h と Memory.h のみに関係しています。

4

1 に答える 1

2

さて、経験的なテストの後、Eigen ヘッダーの呼び出しがすべてのにある必要があることが最終的にわかりました。

プレフィックス ヘッダー (.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>

それが誰かを助けることを願っています。

于 2013-09-05T15:29:19.683 に答える