2013-08-01 4 views
1

Я пишу некоторые скрипты Python, которые собирают данные из приложения, написанного на C++, для построения и визуализации данных. Проекты приложений C++ поставляются в довольно большом файле решения Visual Studio 2012, а до сих пор скрипты Python были написаны отдельно в другом редакторе (например, Notepad ++).Visual Studio 2012 Boost.Python Integration

Кроме того, источник C++, который отправляет данные сценарию Python, скомпилирован с использованием команды Boost.Python bjam. Это создает необходимые библиотеки C++/Python и создает модуль расширения .pyd, содержащий требуемые объекты C++, которые я хочу импортировать в скрипт. Это делается с использованием файла Jamroot.jam в каталоге сценария.

Я хотел бы интегрировать эти сценарии Python в свое решение на C++. Я уже создал проект Python в рамках решения, но я не знаю, как вызвать команду bjam в файле C++.

Есть ли способ установить свойства проекта в Visual Studio для вызова команды bjam и файла Jamroot.jam?

ответ

1

Вы можете вызывать почти любую команду как часть этапа до или после сборки. Разница в том, что если вы используете post-build, вы будете обновлять только в конце успешной сборки. enter image description here

+0

Благодарим за быстрый ответ. Так что я просто набираю нужные команды в поле командной строки? Есть ли что-нибудь еще, о чем я должен знать? Я новичок в Visual Studio, поэтому эта помощь очень ценится. –

+0

У меня возникло бы желание поместить все команды в пакетный файл или файл сценария и просто использовать это в поле командной строки - вам также нужно настроить либо выполнить до, либо выполнить после. Я думаю, что ваш скрипт должен вернуть 0 в случае успеха и a -ve при неудаче. –

+0

ОК! При этом возникает сообщение об ошибке «фатальная ошибка LNK1561: точка входа должна быть определена». Я предполагаю, что он жалуется на отсутствие «основного» файла. Однако он не должен нуждаться в нем, так как файл C++ содержит только определение класса и функцию передачи модуля Boost.Python. Любая идея о том, что случилось, или что я могу сделать, чтобы исправить это? Я установил Execute Before для «Build», но я не уверен, что это правильно. –