Я использую bcp для сканирования своего проекта и нахождения всех зависимостей буста, а затем копирую их в мою папку буста.
Для всего, что требует только заголовков, это нормально, но для заголовков, нуждающихся в build, мне нужно собрать их библиотеку.
Я использую Make для сборки и скоро переключусь на CMake для гибкости процесса сборки, и я хочу включить регулярное выражение сборки вместе с остальными моего кода.
Как мне это сделать?
Вот мой текущий make-файл, он не работает так, как я думал:
MAKEFILE_NAME = ${firstword ${MAKEFILE_LIST}}
MKDIR_P = mkdir -p
INCLUDE = -Isrc -Isrc/lut -Isrc/state -Isrc/lut/boost
# MAIN = src/main.o
BOOST_CPP = $(wildcard src/lut/lib/*.cpp src/lut/lib/**/*.cpp)
BOOST_O = ${BOOST_CPP:.cpp=.o}
OBJECTS = src/lut/card_tree.o src/state/state.o src/state/card_library.o src/lut/field.o src/lut/field_tree.o src/lut/path_helper.o ${BOOST}
TEST_OBJECTS = tests/card_tree_tests.o tests/test_main.o tests/state_tests.o tests/field_tree_tests.o
DEPENDS = ${OBJECTS:.o=.d} ${TEST_OBJECTS:.o=.d} ${MAIN:.o=.d}
OUTDIR = bin
EXEC = munchkins.out
TEST_EXEC = munchkins.test
CXX = g++
CXXFLAGS = -g -Wall -DDEBUG -MMD -std=c++11 ${INCLUDE}
.PHONY : clean obj
${EXEC} : ${OBJECTS} ${TEST_OBJECTS}
${MKDIR_P} ${OUTDIR}
${CXX} ${CXXFALGS} $^ -o ${OUTDIR}/${TEST_EXEC}
${OBJECTS} : ${MAKEFILE_NAME}
obj : ${OBJECTS} ${MAIN}
${MKDIR_P} ${OUTDIR}
${CXX} ${CXXFLAGS} $^ -o ${OUTDIR}/$@
-include ${DEPENDS}
clean :
rm -f ${DEPENDS} ${MAIN} ${OBJECTS} ${TEST_OBJECTS} ${OUTDIR}/${EXEC} ${OUTDIR}/${TEST_EXEC}
Я пытался чтобы получить .cpps в верхней части для файлов .o, но это, конечно, не сработало.
Я получаю эту ошибку, когда пытаюсь скомпилировать, потому что она не может связать:
Undefined symbols for architecture x86_64:
"boost::regex_error::regex_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::regex_constants::error_type, long)", referenced from:
А затем переходит к списку неопределенных символов, относящихся к регулярному выражению.
Как включить библиотеку регулярных выражений в мою сборку?