使用CMake和Boost编译程序-编译和链接,但在运行时输出错误和SEGFULTS
我在Ubuntu12.10(通过repos安装的libboost)上编译带有CMake 2.8.9和Boost 1.49的程序时遇到了一个问题。目前,该程序只是一些共享libs和一个可执行文件(它还没有使用libs)。可执行文件使用使用CMake和Boost编译程序-编译和链接,但在运行时输出错误和SEGFULTS,boost,cmake,boost-program-options,Boost,Cmake,Boost Program Options,我在Ubuntu12.10(通过repos安装的libboost)上编译带有CMake 2.8.9和Boost 1.49的程序时遇到了一个问题。目前,该程序只是一些共享libs和一个可执行文件(它还没有使用libs)。可执行文件使用boost::program_options解析输入 它的布局如下(将有更多的目录,例如共享库和包含,但它们在CMake中还没有功能): src |-工具 ||-CMakeLists.txt ||-main.cpp我猜。add\u definitions的用法是错误的
boost::program_options
解析输入
它的布局如下(将有更多的目录,例如共享库和包含,但它们在CMake中还没有功能):
src
|-工具
||-CMakeLists.txt
||-main.cpp我猜。add\u definitions
的用法是错误的。它适用于预处理器宏,而不是编译器选项。我不确定这将如何影响最终输出,但这是一个起点。
根据给定的编译器选项重写cmakelists.txt文件。这是由于使用了-freg struct return
编译器标志造成的。因此,最终与CMake无关,只是粗心的代码重用。感谢Bort为我指出编译器标志 感谢您提供的信息,我已更改为SET(CMAKE\u CXX\u FLAGS“FLAGS”CACHE\u STRING“FORCE)
,但我仍然得到相同的结果。