2016-10-11 17 views
0

私は自分自身の静的ライブラリを作ろうとしていますが、別のプロジェクトでは使用できません。私は、このコマンドを使用して、コマンドプロンプトでライブラリをコンパイル:私の静的ライブラリのヘッダが見つかりません。

cl /c /EHsc Matrix3.cpp 

私は私のプロジェクトへの参照としてこれを追加しました、と私は私のプロジェクトにコンパイルの.libファイルを含むディレクトリを追加しました。

ライブラリコードは以下のとおりです。

ヘッダファイル:

#pragma once 

typedef struct 
{ 
    float m[3][3]; 
} matrix3; 

class Matrix3 
{ 
public: 
    Matrix3(); 
    ~Matrix3(); 
    matrix3* MatrixAdd(matrix3* A, matrix3* B); 
    matrix3* ScalarMatrixMul(float scalar, matrix3* A); 
    matrix3* MatrixMult(matrix3* A, matrix3* B); 
}; 

.cppファイル:あなたの他のプロジェクト設定で

#include "Matrix3.h" 

Matrix3::Matrix3() { 
} 


Matrix3::~Matrix3() { 
} 

matrix3* Matrix3::MatrixAdd(matrix3* A, matrix3* B) { 

    matrix3* result = new matrix3; 

    for (int row = 0; row < 3; row++) 
     for (int col = 0; col < 3; col++) 
      result->m[row][col] = A->m[row][col] + B->m[row][col]; 

    return result; 
} 

matrix3* Matrix3::ScalarMatrixMul(float scalar, matrix3* A) { 

    matrix3* result = new matrix3; 

    for (int row = 0; row < 3; row++) 
     for (int col = 0; col < 3; col++) 
      result->m[row][col] = scalar * A->m[row][col]; 

    return result; 
} 

matrix3* Matrix3::MatrixMult(matrix3* A, matrix3* B) { 

    matrix3* result = new matrix3; 

    float sum; 

    for (int row = 0; row < 3; row++) { 
     for (int col = 0; col < 3; col++) { 
      sum = 0; 
      for (int k = 0; k < 3; k++) 
       sum += A->m[row][k] * B->m[k][col]; 
      result->m[row][col] = sum; 
     } 
    } 

    return result; 
} 
+1

ポインタを使用するのは設計が貧弱なため、ユーザーはメモリ管理を心配する必要があり、コンパイラが最適化するのがずっと難しくなります。 –

答えて

0

、中C/C++ - >一般 - 追加は、ディレクトリを指定する必要がインクルードディレクトリ>Matrix3.hが配置されます。さもなければ、コンパイラは、コンパイルされているソースファイルが置かれているのと同じディレクトリで検索します。

関連する問題