草庐IT

library_release

全部标签

c++ - 是否可以将导入的库添加到 target_link_libraries 来处理包含目录?

不知何故,我正在努力找出是否可以在CMake中定义导入的库,指定目标属性(include_directories和库路径),并希望一旦我将该项目添加到另一个项目中的target_link_libraries,CMake将附加包含目录.假设我在一个名为Module-Conf.cmake的文件中有一个导入的库:add_library(mymoduleSTATICIMPORTED)set_target_properties(mymodulePROPERTIESIMPORTED_LOCATION"${OUTPUT_DIR}/lib")set_target_properties(mymodule

c++ - Boost 是什么意思 "header-only libraries"和 "automatic linking"?

在Boostlibrarydocumentation页面,有两个类别分别名为“HeaderOnlyLibraries”和“AutomaticLinking”。我想“仅标题库”意味着您不必链接到Boost库才能使用它们,“自动链接”意味着你必须链接。但是当我使用Boost.Timer时,我必须链接一个名为timer的静态或动态库(libboost_timer.a和>libboost_timer.so.1.48.0和Linux库路径下的各种软链接(softlink)),这显然是Boost.Timer的确切库文件。我什至需要链接Boost.System和Boost.Chrono,虽然库本身使

c++ - 有条件的 CMAKE 链接到 rt-library

如何编写CMakeLists.txt以仅在Linux环境下有条件地链接到系统范围的librt库? 最佳答案 cmake有几个对环境检测有用的预定义变量(WIN32、UNIX、APPLE、CYGWIN)。以下是完整列表:http://www.cmake.org/cmake/help/cmake-2-8-docs.html#section_VariablesThatDescribetheSystem所以你可以写类似的东西if(UNIXANDNOTAPPLE)target_link_libraries(target_namert)endi

python - 带有 GDB : the case of nlohmann json library 的 C++ 调试/打印自定义类型

我正在使用nlohmann'sjsonC++implementation进行一个项目.如何在GDB中轻松探索nlohmann的JSON键/值?我试过用这个STLgdbwrapping因为它为探索nlohmann的JSON库正在使用的标准C++库结构提供了帮助。但是我觉得不方便。这是一个简单的用例:jsonfoo;foo["flex"]=0.2;foo["awesome_str"]="bleh";foo["nested"]={{"bar","barz"}};我想在GDB中拥有什么:(gdb)pfoo{"flex":0.2,"awesome_str":"bleh","nested":etc

c++ - 如何在 GCC 中通过优化构建 Release模式?

我需要在“Release模式”中构建并在GCC中进行全面优化的具体选项是什么?如果有多个选项,请列出所有选项。谢谢。 最佳答案 http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html没有“一刀切”——您需要了解您的应用程序、您的要求和优化标志,以确定您的二进制文件的正确子集。或者你想要的答案:-O3 关于c++-如何在GCC中通过优化构建Release模式?,我们在StackOverflow上找到一个类似的问题:

c++ - C/C++ : Portable way to detect debug/release?

是否有标准化的(例如由所有主要编译器实现的)#define来区分调试和发布版本? 最佳答案 如果相信#ifdefNDEBUG//nondebug#else//debugcode#endif是最便携的。但是没有编译器知道你是在编译调试还是发布,所以这不是自动的。但是这个是assert.h在c-runtime中使用的,所以它很常见。VisualStudio会设置它,我相信大多数其他IDE也会设置它。 关于c++-C/C++:Portablewaytodetectdebug/release?,

c++ - Visual C++ 2008 'Release' build 包含调试信息

我注意到在使用MSVisualStudio2008生成新的C++项目时,Release构建包含调试符号-特别是启用了以下设置:C++/常规/调试信息格式设置为程序数据库。链接器/调试/生成调试信息设置为Yes。我从未在VisualStudio的早期版本中注意到这一点。那么,除了生成更大的EXE文件之外,启用这些设置还有什么缺点吗? 最佳答案 多年来,我们一直在商业版本中启用这些设置,没有明显的缺点。不过,好处是巨大的。我们集成了一个故障转储打包程序,它将转储连同其他一些信息一起打包,并通过电子邮件(在用户同意的情况下)发送到公司收件

c++ - Release模式静态库比 Debug模式版本大得多

今天我发现我正在处理的编译静态库在Release模式下比在Debug模式下要大得多。我发现这非常令人惊讶,因为大多数时候情况正好相反(据我所知)。Debug模式下的大小略高于3MB(这是一个相当大的项目),但在发布时它会增加到6.5MB。有人能告诉我这可能是什么原因吗?我正在为静态库项目使用通常的VisualStudio(2008)设置,几乎没有更改构建配置设置。在发布中,我使用/O2并且“偏好大小或速度”设置为“两者都不”。/O2(“最大化速度”)是否会导致最终的.lib比包含所有调试信息的调试版本大得多?编辑:补充资料:调试:-整个程序优化:没有-启用功能级链接:否发布:-整个程序

c++ - boost any library 的典型用法是什么?

使用boost.any库有什么好处?你能给我一些现实生活中的例子吗?为什么不能通过在对象层次结构的根中使用一些泛型类型并使用该基类型创建容器来实现相同的功能? 最佳答案 boost::any将愉快地存储整数和float,这些类型显然没有基类。您可以使用它的真实示例是高级解释语言的虚拟机。您的“函数”对象将需要一组参数。这可以通过std::list轻松实现在幕后。 关于c++-boostanylibrary的典型用法是什么?,我们在StackOverflow上找到一个类似的问题:

c++ - 克利昂 2016.3 : switch to "Release" configuration

我最近更新到clion2016.3并注意到我无法再在不同的配置类型之间进行选择。在2016.2中,我可以在“Debug”、“Release”、“MinSizeRel”和“RelWithDebInfo”之间进行选择,但现在唯一可用的选项是“Debug”。我做错了吗?我是否必须编辑CMakeLists.txt才能恢复不同的配置类型? 最佳答案 CMake工作流程changed在2016.3.阅读链接的博客文章了解详细信息,但简而言之,CLion不再构建所有4个CMake配置以节省时间和内存。您可以在Settings|中配置CMake配置