Прежде всего, я должен сказать, что я являюсь абсолютным новичком в C++ и всем компилятором, который происходит для разработки на родном языке.Precompile C++ vendor Libraries (#include api.h)
Что я на самом деле пытаюсь сделать, это создать привязку NodeJS, чтобы обернуть существующую библиотеку. Сама библиотека имеет api.h, которую я могу включить в мою обертку, и использовать ее для создания моих методов Wrapper. Проблема, которая у меня есть, это то, что сама библиотека является довольно большой:
src/
vendor/
libA/..
libB/..
libC/..
api.h
api.cpp
addon.cpp (where I am including the "vendor/api.h")
поэтому каждый раз, когда я компиляция моего addon.cpp всех библиотек должна быть повторно снова и снова, что отстой. Так что лучший способ скомпилировать api один раз и использовать его в моем addon.cpp (я не использую ни один из libs в моем аддоне только api.h!)
Кстати, я работаю над Ubuntu 14,04, и я использую CMake выполнить компиляцию:
чтобы компилировать мой аддон со всеми библиотеками, я определяю все SOURCE_FILES так:
file(GLOB SOURCE_FILES
"src/addon.cpp"
"src/vendor/*.cpp" "src/vendor/*.h"
"src/vendor/libA/*.c" "src/vendor/libA/*.h"
"src/vendor/libB/*.cpp" "src/vendor/libB/*.h"
"src/vendor/libC/*.c" "src/vendor/libC/*.h"
)
...
add_library(addon SHARED ${SOURCE_FILES})
чтобы скомпилировать его, я звоню
cmake-js rebuild
CMake-JS, потому что он также загружает некоторые NodeJS необходимые вещи, но файл CMakeLists.txt использует обычный синтаксис Cmake
Таким образом, любая помощь будет действительно удивительным, спасибо!
Возможно, вам придется объяснить, что такое УОПР. –
Возможно, вы имели в виду 'файл (GLOB SOURCE_FILES ...'? – Nazar554
Если вы просто modfiy 'addon.cpp', это должно ** не ** заставлять другие файлы перекомпилировать –