首页 > 解决方案 > bcp boost 正则表达式 makefile 配置

问题描述

我正在使用 bcp 扫描我的项目并找到所有 boost 依赖项,然后将它们复制到我的 boost 文件夹中。

对于只需要标题的所有内容,这很好,但对于需要构建的标题,我需要构建他们的库。

我正在使用 Make 进行构建,并且很快将切换到 CMake 以实现构建过程的灵活性,并且我想将构建正则表达式与我的其余代码一起包含在内。

我该怎么做呢?

这是我当前的makefile,它不像我想象的那样工作:

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}

我试图在 .o 文件的顶部获得 boost .cpps,但这当然不起作用。

当我尝试编译时出现此错误,因为它无法链接:

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:

然后继续列出一堆与正则表达式相关的未定义符号。

如何在我的构建中包含正则表达式库?

标签: regexboostmakefile

解决方案


推荐阅读