2021년 6월 11일 금요일

[Visual Studio] 구글테스트 Inherited Additional Dependencies 변경

구글테스트에 Configuration을 추가하는 경우 정상적인 빌드가 되지 않는 문제 발생
상황: Test 명칭으로 Configuration을 새로 추가하였음
원인: 다음그림과 같이 Inherited values에 debug용이 아닌 release로 연결됨.


해결방법:
1. 다음 비쥬얼 스튜디오 솔루션 폴더를 들어간다.
<개인경로>\packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn.1.8.1.3\build\native
2. Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn.targets 파일을 편집기로 연다.
3. Test명칭의 Configuration을 이용할 것이므로 Debug를 모두 Test로 바꿔준다.
(그림외에 추가로 더있음, 또는 필요에 따라 문법에 맞게 수정)


4. 다음경로안에 Debug, Release 폴더가있음. Debug폴더 이름을 Test로 변경 64비트 컴파일 사용시 x64폴더도 수정한다.
<개인경로>\packages\Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn.1.8.1.3\lib\native\v140\windesktop\msvcstl\static\rt-dyn\x86

2021년 5월 25일 화요일

Eigen 라이브러리 - 매트릭스 합치기

방법

1. rows와 cols를 이용하여 matrixXd와 같은 자료형을 가진 변수를 생성 
2. 그냥 대입.

코드예시

#include "Eigen/Dense"
#include <iostream>
 
using namespace Eigen;
using namespace std;
 
int32_t main()
{
        // Matrix 생성
        MatrixXd A(2, 3);
        MatrixXd B(3, 3);
 
        // A 대입
        A << 1, 2, 3,
               3, 4, 5;
        B = MatrixXd::Ones(3, 3);
 
        MatrixXd C(A.rows() + B.rows(), A.cols());
        C << A, B;
 
        cout << C << endl;
 
        return 0;
}

결과


실행하여 위와 같은 결과를 얻을 수 있습니다.

MatrixXd C(A.rows() + B.rows(), A.cols());  // Eigen 라이브러리 명령
C << A, B;

C = [A; B]; @ Matlab 명령

2021년 5월 24일 월요일

Eigen 라이브러리 - submatrix 선택방법

 block<m,n>(i,j) 또는 block(m,n,i,j)를 이용합니다.

        // Matrix 생성
        MatrixXd B(3, 3);
 
        // A 대입
        A << 1, 2,
               3, 4;
       
        B = MatrixXd::Zero(3, 3); // B 초기화
        B.block<2, 2>(0, 0) = A; // submatrix 대입
 
        cout << B << endl; // B 출력
        MatrixXd A(2, 2);


콘솔 출력

실행하여 위와 같은 결과를 얻을 수 있습니다.
주의사항은 matlab과 달리 row, column의 인덱스가 0부터 시작합니다.


B.block<2, 2>(0, 0) = A;  // Eigen 라이브러리 명령

B(1:2,1:2) = A; @ Matlab 명령

[Visual Studio] 구글테스트 Inherited Additional Dependencies 변경

구글테스트에 Configuration을 추가하는 경우 정상적인 빌드가 되지 않는 문제 발생 상황: Test 명칭으로 Configuration을 새로 추가하였음 원인: 다음그림과 같이 Inherited values에 debug용이 아닌 release...