включают библиотеки, которые используются в заголовочном файле самодельной статической библиотеки - PullRequest
0 голосов
/ 19 мая 2019

В проекте статической библиотеки у меня есть "myClass.h", который выглядит примерно так:

class myClass{
.
.
#include "tensorflow/....h" //some tensorflow header file
.
.
using tensorflow::Tensor;
.
.
void CopyTensorImage2Cv(tensorflow::Tensor &Tensor);
.
.
}

}

, и у меня есть «myClass.cpp» с определением CopyTensorImage2Cv().

Я хочу создать статическую библиотеку, поэтому я собираю проект и получаю "myClass.lib" успешно.

Теперь я создаю консольное приложение с исходным кодом «test.cpp» для использования этого файла lib. Когда я добавляю файл lib и копирую «myClass.h» рядом с «test.cpp» и собираю проект, Visual Studio выдает ошибку, которая не может понять #include "tensorflow/....h" и "using tensorflow::Tensor"

Что я могу сделать в этом случае, когда я хочу использовать статическую библиотеку, которая использует другую библиотеку в своем заголовочном файле?

1 Ответ

0 голосов
/ 21 мая 2019

Я нашел решение, Я использовал Форвардную декларацию, чтобы избежать использования #include в моем заголовочном файле. Меня устраивает. для более подробной информации вы можете искать о предварительной декларации в заголовочном файле. например, в этом случае я использую следующий код:

namespace tensorflow{
      class Tensor;
};
...