gpt4 book ai didi

c++ - 编译时结合 fno-rtti lib 和 rtti lib?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:20:58 25 4
gpt4 key购买 nike

我在我的测试应用程序中使用了一些 LLVM 静态库和 boost::program_options。问题是使用 LLVM 库的源代码应该用 -fno-rtti 编译(llvm-config -cxxflags 在输出中返回它

$ ./llvm-config --cxxflags
-I/Users/user/Documents/dev/src/llvm/installed_local/include -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -fno-common -Woverloaded-virtual -Wcast-qual

) 但 boost::program_options 需要通过 boost::any 进行 RTTI:

/softdev/boost-1.56/include/boost/any.hpp:149:48: error: cannot use typeid with -fno-rtti
return content ? content->type() : typeid(void);

为我的应用编译 cmd:

clang++ `${LLVM_BIN}/llvm-config --cxxflags` -I${LLVM_INCLUDE} -I${CLANG_INCLUDE} -I/softdev/boost-1.56/include -c ./lib_linker.cpp -o ./lib_linker_x86_64.o

我应该怎么做才能编译我的应用程序?

附言。同样的异常问题 - LLVM 使用 -fno-exceptions 关闭异常,但 program_options 需要它们:

/softdev/boost-1.56/include/boost/program_options/value_semantic.hpp:355:20: error: cannot use typeid with -fno-rtti
return typeid(T);

最佳答案

您需要在启用 RTTI 和异常的情况下重新编译 LLVM。

关于c++ - 编译时结合 fno-rtti lib 和 rtti lib?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com