2013-05-30 2 views
0

Я пытаюсь построить dll, которая использует объект автоматизации excel, используя boost-build.Ускоренная сборка не может правильно найти файл .tli и прервать

У него есть только один файл .cpp, который содержит файлы mso.tlh, vbe6ext.tlh и excel.tlh (также присутствуют соответствующие файлы .tli). Все файлы находятся в одном каталоге с файлом jamfile.

В файле Jamfile указывается «<> ./». Однако, когда я пытаюсь построить его прерывания, потому что он ищет файл excel.tli в каталоге, где находится файл Jamroot, а не где находятся файлы jamfile и excel.tli.

Если я поставил excel.tli, где Jamroot, сборка будет успешной.

Что мне делать, чтобы заставить его искать файл excel.tli в каталоге, где находится Jamfile?

ответ

1

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

#include "excel.tlh" 
#include "mso.tlh" 
#include "vbe6ext.tlh" 

В качестве альтернативы, вы можете обеспечить правильный путь поиска, используя path-constant правило. Добавьте следующее в вашем jamfile:

path-constant HERE : . ; 

И теперь вы можете использовать $(HERE) в качестве ссылки на каталог jamfile

exe my_exe : ... : <include>$(HERE) ;