Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CMake和Boost编译程序-编译和链接,但在运行时输出错误和SEGFULTS_Boost_Cmake_Boost Program Options - Fatal编程技术网

使用CMake和Boost编译程序-编译和链接,但在运行时输出错误和SEGFULTS

使用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的用法是错误的

我在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
的用法是错误的。它适用于预处理器宏,而不是编译器选项。我不确定这将如何影响最终输出,但这是一个起点。
根据给定的编译器选项重写cmakelists.txt文件。

这是由于使用了
-freg struct return
编译器标志造成的。因此,最终与CMake无关,只是粗心的代码重用。感谢Bort为我指出编译器标志

感谢您提供的信息,我已更改为
SET(CMAKE\u CXX\u FLAGS“FLAGS”CACHE\u STRING“FORCE)
,但我仍然得到相同的结果。