2014-10-23 2 views
0

Я подвергал объекты C++ python, используя boost.python.Должен ли я # включить boost/Python.hpp или boost/python.hpp?

Должен ли я использовать

#include boost/python.hpp 

или

#include boost/Python.hpp 

?

+2

Фактический файл - 'python.hpp', поэтому вы должны использовать его, а не заглавную. – birryree

+0

, но с помощью Python.hpp работает на моей машине. Странный? – zell

+2

Вы делаете это '# include' на компьютере под управлением Windows или файловой системе, которая не чувствительна к регистру (например, FAT или NTFS)? Вот почему. Он не будет работать на файловой системе, чувствительной к регистру (например, большинству файловых систем на базе Unix). – birryree

ответ

3

Использовать python.hpp в незначительных случаях.

Рекомендуется сохранять чувствительность к действительному файловому регистру при их включении. Перейдите в каталог include и проверьте имя файла, убедитесь, что вы включили его с правильными верхними/нижними регистрами.

Else, он будет работать на Windows (не чувствителен к регистру) и будет работать, если в один прекрасный день вы попытаетесь скомпилировать под Linux. После этого вам будет сложно обновить все ваши включенные заявления ....

+0

Я действительно хочу, чтобы компиляторы Windows (препроцессоры, действительно) имели опцию, которая могла бы вызвать диагностику ошибок, если случай в исходном файле не соответствовал файлу включенного файла (включая любой компонент пути, указанный как часть '#include 'директива). Это упростило бы устранение этих проблем в больших кодовых файлах. Было бы лучше, если бы этот параметр был включен по умолчанию, но я этого не вижу. – cdhowie

1
$ repoquery -l boost-devel 
... 
/usr/include/boost/python.hpp 
...