Проблемы при создании быстрого примера с bjam - PullRequest
0 голосов
/ 29 января 2019

Я впервые пытаюсь использовать boost :: python, и я начал с включенных обучающих программ, но я разочарован, потому что даже не могу ничего построить после одного целого рабочего дня.

МойСредства разработки: Python37, Boost1.69, VS 2017 и ОС Windows 10.И интерпретатор Python, и двоичные файлы для Boost являются 64-битной версией.

Я собрал bjam.exe в "Z: / EXTERNOS / boost_1_69_0 / tools / build", но не включил в системный путь (япроверено в том числе и я получил те же ошибки).Я использую следующий файл "user-config.bjam" в папке, обозначенной ECHO% HOMEDRIVE %% HOMEPATH%:

import toolset : using ;
using msvc : 14.1 ;
using python 
  : 3.7  # Version
  : "C:/Program Files/Python37/python.exe"  # Interpreter
  : "C:/Program Files/Python37/include"  # inc dir
  : "C:/Program Files/Python37/libs"  # link libs
  : # conditions
  ;

Затем я перешел в папку "Z: / EXTERNOS / boost_1_69_0 / libs /python / example / quickstart "в командной консоли и запустите это предложение:

Z:\EXTERNOS\boost_1_69_0\tools\build\bjam.exe

Вывод в консоли следующий:

"C:/Program" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.
...found 26 targets...
...updating 6 targets...
compile-c-c++ extending.obj
extending.cpp
extending.cpp(5): fatal error C1083: No se puede abrir el archivo incluir: 'boost/python/class.hpp': No such file or directory

    call "..\bin\standalone\msvc\msvc-14.1\msvc-setup.bat"  >nul
 cl /Zm800 -nologo @"extending.obj.rsp"

...failed compile-c-c++ extending.obj...
...skipped <p.>extending.pyd for lack of <p.>extending.obj...
...skipped <p.>extending.pdb for lack of <p.>extending.obj...
compile-c-c++ embedding.obj
embedding.cpp
embedding.cpp(6): fatal error C1083: No se puede abrir el archivo incluir: 'boost/python.hpp': No such file or directory

    call "..\bin\standalone\msvc\msvc-14.1\msvc-setup.bat"  >nul
 cl /Zm800 -nologo @"embedding.obj.rsp"

...failed compile-c-c++ embedding.obj...
...skipped <p.>embedding.exe for lack of <p.>embedding.obj...
...skipped <p.>embedding.pdb for lack of <p.>embedding.obj...
...failed updating 2 targets...
...skipped 4 targets...

Я заметил, что многие людиУ меня были проблемы с проблемами, близкими к этому, но предоставленные им тестовые решения, похоже, не работают для меня.

Есть идеи о том, что не работает?

1 Ответ

0 голосов
/ 29 января 2019

После некоторой борьбы с bjam я сдался и начал искать другой более простой способ.Вот некоторые из них: использование CMake, python disutils ... но тот, который я нашел лучшим для людей, привыкших работать с c ++ и msvc, и следующий:

  • Use VS (протестировано с версиямис 2010 по 2017 год, не уверен насчет более ранних).
  • Создайте и очистите консольное приложение и установите его в качестве общей библиотеки.
  • Настройте все в VS, чтобы найти необходимые папки boost и python, обавключает в себя и библиотеки.
  • Запрограммируйте код c ++ из руководств boost :: python и скомпилируйте его (помните, что x86 или 64-битная среда должна соответствовать установленному интерпретатору python).
  • Перейти кПапка результатов и измените расширение .dll для расширения .pyd.
  • Протестируйте его, открыв консольную команду в той же папке результатов и запустив интерпретатор Python, импортировав и вызвав любой из методов.

Гораздо проще, чем официальная система bjam!

...