草庐IT

vs-cmake-examples

全部标签

c++ - 如果存在则使用它/检测 C++ 中当前作用域的调用约定(thiscall vs cdecl)

我正在尝试编写一个健壮的宏,它将在thiscall和cdecl调用约定中工作,但如果“this”存在(thiscall),则利用“this”获取更多信息。这可能吗?这是一个不起作用的例子:#definePRINT_IF_THIS_EXISTS\if(this)printf("this(addr%08x)existsin%s!\n",size_t(this),__FUNCTION__)structMyStruct{voidMyFunc(){PRINT_IF_THIS_EXISTS;}};voidStaticFunc(){PRINT_IF_THIS_EXISTS;MyStructms;ms

c++ - 无法在 VS 2013 社区中创建 C++ 项目

在我选择“Win32控制台应用程序”或“Win32项目”并通过向导后,我得到了一个空的解决方案。“新建项目”对话框再次弹出:尝试CLR类下的项目类型时报错:它说了一些关于访问OLE系统注册表的事情。但WindowsStoreC++应用程序项目和其他语言工作得很好。我尝试过:使用安装程序提供的修复功能。运行vs_community.exe/uninstall/force并重新安装。删除C:\ProgramFiles(x86)\MicrosoftVisualStudio12.0\Common7\IDE中的ProjectTemplatesCache和ItemTemplatesCache目录,

python - 将 Waf 目标链接到由外部构建系统 (CMake) 生成的库

我的waf项目有两个依赖项,使用CMake构建。我正在尝试做的是遵循dynamic_build3在wafgitrepo中找到的示例,创建一个生成CMake的工具,并在成功构建后,在waf的输出子目录中执行安装:@extension('.txt')defspawn_cmake(self,node):ifnode.name=='CMakeLists.txt':self.cmake_task=self.create_task('CMake',node)self.cmake_task.name=self.target@feature('cmake')@after_method('process

c++ - CMake 错误 : common is required but boost was not found

我正在尝试使用cmake_3.5.0编译opencv_2.4.9以在Qt_5.3.2MinGW中运行一个项目,但它一直显示此错误:Commonneededbutcan'tfindboost我选择“MinGWMakefiles”作为生成器并在配置窗口中“指定native编译器”。我定义了BOOST_ROOT环境变量,这是我的CmakeLists.txt:cmake_minimum_required(VERSION2.8FATAL_ERROR)SET(sampleNameMyApp)set(Boost_USE_STATIC_LIBSON)set(Boost_USE_STATICON)set

c++ - CMake 链接失败

我的C++项目有一个CMakeLists.txt,它可以在Windows上完美运行,使用MSVC,在Linux上使用海合会。我也试图在WindowsforLinux上使用相同的文件进行交叉编译。我正在使用EclipseCDT4-UnixMakefiles作为生成器在Eclipse中创建一个make文件项目。为了使用交叉编译器,我创建了以下工具链文件set(CMAKE_SYSTEM_NAMELinux)set(TOOL_CHAIN_ROOT"C:/mgc/embedded/codebench")#specifythecrosscompilerset(CMAKE_C_COMPILER${T

c++ - cpplint.py 和 cmake : how to specify include files

假设我有一个目录结构如下的项目:myproject├──.git[...]├──CMakeLists.txt└──src├──CMakeLists.txt├──foo.cc└──foo.h如果在src/foo.cc中,我包含像#include"foo.h"这样的头文件,然后运行​​Google的cpplint.py在它上面,它提示src/foo.cc:8:Includethedirectorywhennaming.hfiles[build/include][4]所以我将它包含为#include"./foo.h"。现在我收到另一个投诉:src/foo.cc:8:src/foo.ccsho

c++ - 在 Cmake 中将 flto=jobserver 传递给 gcc

我正在使用flto构建应用程序,我想在make中使用的所有内核上并行化它,例如,如果我使用make-j4然后在4个内核上运行它例子:cmake_minimum_required(VERSION2.8)project(a)set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-flto")set(CMAKE_EXE_LINKER_FLAGS"${CMAKE_EXE_LINKER_FLAGS}-flto=jobserver")add_executable(aa.cppb.cpp)其中a.cpp和b.cpp是任何合理的cpps(其中之一有main)运行make-j2给我

c++ - cmake 中的 Clion 多个调试配置

我有一个带有qt-gui和命令行版本的项目。我有gui和非gui版本的发布和调试配置。我想在gui和非gui版本中为调试配置使用不同的名称。但是,当配置的名称与Debug不同时,调试不起作用,它的行为类似于发布版本。有没有可能有多个调试配置,每个都有不同的名称? 最佳答案 请注意,如果您单击“调试”配置,以下提示将显示在“CMake选项”下方:-DCMAKE_BUILD_TYPE=Debugwillbepassedautomatically因此,当您使用不同的名称创建自己的配置时,您应该尝试将-DCMAKE_BUILD_TYPE=D

c++ - 理解 double-to-int 转换中的 int-vs-trunc 关系

当我运行以下代码时#include#includeusingnamespacestd;intmain(){enum{FACTOR=3};doubled=1.0/FACTOR;doubled_i=int(d*FACTOR);inti_t=std::trunc(d*FACTOR);doubled_r=std::round(d*FACTOR);cout在Code::Blocks17.12IDE中(使用我认为/希望的全包工具),我得到了这些令人困惑的结果:0vs1vs1我尝试更改编译器,但没有任何改变。最后我安装了MinGW-64版本8.1.0。我的构建日志显示--------------Cl

c++ - CMake在自定义命令中编译C++文件

我正在尝试使用以下命令在GCC中预编译头文件:ADD_CUSTOM_COMMAND(OUTPUT${CMAKE_CURRENT_BINARY_DIR}/all.hpp.gchCOMMAND${CMAKE_CXX_COMPILER}${CMAKE_CXX_FLAGS}-o${CMAKE_BINARY_DIR}/all.hpp.gch${CMAKE_CURRENT_SOURCE_DIR}/all.hppDEPENDS${CMAKE_CURRENT_SOURCE_DIR}/all.hppCOMMENT"Generatingprecompiledheaders")但是,我没有将CMAKE_CX