У меня есть один проект: mialsrtkOrientImage с одним .h и одним .cpp и множеством зависимостей, «управляемых» с помощью cmake.Я хочу создать из него .lib (он скомпилирует и создаст .lib)
, и теперь я хочу использовать .lib в другом проекте OrientImageWrapper, чтобы класс был определен в проекте mialsrtkOrientImage
У меня есть это: mialsrtkOrientImage.h:
#ifndef mialsrtkOrientImage_H
#define mialsrtkOrientImage_H
class MialOrientImage {
public:
//! default constructor
MialOrientImage();
//! default destructor
~MialOrientImage();
std::string inputFile;
std::string outputFile;
std::string orientation;
void reOrient(std::string inputFile, std::string outputFile, std::string orientation);
private:
int coucou;
};
#endif
и в OrientImageWrapper:
#ifndef mialsrtkOrientImageWrapper_H
#define mialsrtkOrientImageWrapper_H
#include <string>
# define reOrientWrapper_EXPORT __declspec(dllexport)
class MialOrientImage;
class reOrientWrapper_EXPORT reOrientWrapper {
public:
//! default constructor
reOrientWrapper();
//! default destructor
~reOrientWrapper();
std::string inputFile;
std::string outputFile;
std::string orientation;
void reOrient(std::string inputFile, std::string outputFile, std::string orientation);
int test = 1;
private:
MialOrientImage* wrap_MialOrientImage;
};
в OrientImageWrapper.cpp У меня есть:
#include "mialsrtkOrientImageWrapper.h"
#include <string>
#include <iostream>
void reOrientWrapper::reOrient(std::string inputFile, std::string outputFile, std::string orientation)
{
std::cout << inputFile << outputFile << orientation << std::endl;
wrap_MialOrientImage.reOrient(inputFile, outputFile, orientation);
}
reOrientWrapper::reOrientWrapper()
{
std::cout << "construit" << std::endl;
}
reOrientWrapper::~reOrientWrapper()
{
std::cout << "detruit" << std::endl;
}
int main()
{
reOrientWrapper test;
std::cout << test.test << std::endl;
test.reOrient("plif", "plaf", "plouf");
return 0;
}
В Visual Studio я поставил папку с .lib в свойствах конфигурации -> Каталоги VC ++ -> Директории библиотеки
. Мой .lib можно посмотреть здесь:
но когда я хочу скомпилировать OrientImageWrapper, у меня появляется эта ошибка:
слева от .reOrient должен иметь class / struc / union, код ошибки C2228
, поэтому кажетсячто возникла проблема при создании класса MialOrientImage из .lib
Как я мог решить эту проблему?