Ошибка при построении общей библиотеки тензорного потока C ++ в Windows - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь построить тензор потока в качестве отдельного проекта, и я следую этому руководству

http://www.stefanseibert.com/2017/10/tensorflow-as-dll-into-your-windows-c-project-with-gpu-support-and-cmake-v1-3/

, но в качестве альтернативы с поддержкой ЦП

Мои версии установки среды

protobuf 3.6.1
тензор потока 1.10.0
tf.GIT_VERSION = b'v1.10.0-rc1-19-g656e7a2b34 '

Вот шаги, которые я использовал для генерации общей библиотеки * * * * * * * * * *

  1. *1022* *1022* * *1022* 1027 * Установлен исходный кодзависимости, так как я не использую привязки python, SWIG не нужен, поэтому я установил Git (версия 2.15.1.windows.2) и cmake 3.11.1
  2. Iиспользовал 64-битные инструменты из Visual Studio 2015, так как VS2015 необходим для сборки DLL.Я должен иметь возможность открыть «Командную строку Native Tools VS2015 x64».Это необходимо, поэтому VS использует 64-битный набор инструментов.

  3. Перейдите в командной строке к подпапке «tenorflow / contrib / cmake» исходного кода и создайте каталог с «mkdir build»,Затем перейдите к новой папке сборки с помощью «сборки на компакт-диске».

  4. Создание решения для сборки: cmake .. -A x64 -DCMAKE_BUILD_TYPE = RelWithDebInfo -Dtensorflow_BUILD_CC_EXAMPLE = OFF -Dtensorflow_ENABLE_GRPC_SDTSTCCORT_CABT_STDER_SD_SDK_SD_RU_RU_RU_RU_RU_RU_RU_RU_RU_RU_RU_устроитель= OFF -Dtensorflow_BUILD_PYTHON_TESTS = OFF -Dtensorflow_ENABLE_GPU = OFF -Dtensorflow_WIN_CPU_SIMD_OPTIONS = / arch: AVX -Dtensorflow_BUILD_SHARED_LIB = ON

  5. * 1043Чтобы собрать tennflow.dll, я выполнил следующую команду: MSBuild / p: Configuration = RelWithDebInfo tenorflow.vcxproj
  6. Это приводит к ошибке: D: \ work \ tenorflow \tenorflow / core / lib / core / stringpiece.h (34): фатальная ошибка C1083: невозможно открыть включаемый файл: 'absl / strings / string_view.h': такого файла или каталога нет (компиляция исходного файла D: \ work \ tenorflow \tenorflow \ core \ lib \ core \ coding.cc) [D: \ work \ensorflow \ tenensflow \ contrib \ cmake \ build \ tf_core_lib.vcxproj] .

  7. Я исправилвышеупомянутая ошибка с этим: https://github.com/tensorflow/tensorflow/issues/22007#issuecomment-424553600.

  8. При выполнении вышеизложенного я в конечном итоге с этой ошибкой: path.obj: ошибка LNK2019: неразрешенный внешний символ "void __cdecl absl :: base_internal ::ThrowStdOutOfRange (char const *) "(? ThrowStdOutOfRange @ base_internal @ absl @@ YA XPEBD @ Z), на который есть ссылка в функции" класс std :: basic_string, класс std :: allocator> __cdecl tenorflow :: io :: internal :: JoinPathIm

Я не могу продолжить. Любой обходной путь fили это?Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Я столкнулся с той же проблемой, я думаю, что новая версия tenorflow не поддерживает CMake, но мы можем решить проблемы.1. Кажется, что версия absl в папке проекта устарела, поэтому я клонировал последнюю версию abseil-cpp из: https://github.com/abseil/abseil-cpp 2. Используйте cmake для сборки abseil-cpp, это будет быстро.3. Добавьте путь к lib в зависимость от тензорного потока. Необходимым будет D: \ git \ abseil-cpp \ abseil-cpp \ build \ absl \ base \ Release \ absl_absl_throw_delegate.lib 4. Если вы встретите другую ошибку компоновки, вы можете найтиимя функции в absl источниках и найдите в ней библиотеку.Надеюсь, что это поможет вам и людям, которые могут столкнуться с этой проблемой в будущем.

0 голосов
/ 13 февраля 2019

lnk2019 ошибка возникает, когда вы непосредственно используете исходный код, не связаны должным образом.Пожалуйста, добавьте дополнительные зависимости в ваш проект.

  • Переход к свойствам проекта
  • выбор опции C / C ++
  • Добавление дополнительных зависимостей
  • Перейти к компоновщикуОпция ниже C / C ++
  • Добавьте сюда дополнительные зависимости.

Может быть, вам поможет справиться с проблемой LNK2019

посмотреть этопонять ошибку LNK2019.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...