草庐IT

vs-cmake-examples

全部标签

c++ - 显式模板实例化 : MSVC vs. GCC

我正在尝试处理C++中的命名空间和模板。我可以获得以下代码以在MSVC中编译(没有警告或错误),但是我对CYGWIN/GCC的各种排列完全没有运气。任何帮助将不胜感激。在头文件中,我声明了一个模板化的子类,如下所示:#includenamespacesfms{templateclassSmfsGrid_Typed:publicSfmsGrid_Base{public:SmfsGrid_Typed();SmfsGrid_Typed(constSmfsGrid_Typed*toCopy);SmfsGrid_Typed(std::stringfilename);virtual~SmfsGri

如何将CMAKE用于Fortran和C ++?

我是Cmake的新手,似乎很难获得我的脚本工作。我的代码可以以通常的方式编译,但我确实需要使用CMAKE。我编译以下内容:g++vectc.cpp-c-std=c++11gfortranvectf.fvectc.o-lstdc++这个cmakelists.txt,这对我不起作用:cmake_minimum_required(VERSION2.6)project(add_vectorsCXXFortran)enable_language(Fortran)set(CMAKE_CXX_FLAGS"-c-std=c++11")set(CMAKE_Fortran_FLAGS"CMakeFiles/exe

c++ - 使用元编程的私有(private)成员存在性测试,GCC vs clang,哪个是对的?

这更像是一个C++标准问题。考虑以下代码:templateclasshas_Data{typedefcharone;typedeflongtwo;templatestaticonetest(typeof(&C::Data));templatestatictwotest(...);public:enum{value=sizeof(test(0))==sizeof(char)};};classMyClass{private:structData{};};voidfunction(boolval=has_Data::value){}以上代码适用于gcc(GCC)4.4.3但是clang版本3

c++ - 替代 CMake

我在visualstudio中使用CMake构建规则来预处理我的文件,然后再将它们提交给编译器,但我的客户不喜欢它。是否有任何CMake替代方法或方法来预处理我的文件并将它们集成到visualstudio中? 最佳答案 据我了解,您正在使用CMake生成您手动创建的VS项目使用的文件。无论出于何种原因,您的VS项目的客户都不喜欢CMake。据推测,您已经通过创建调用CMake以生成项目中的文件的自定义构建步骤来连接它,或者作为项目上的构建事件,或者作为项目中各种文件的自定义构建步骤,例如脚本的输入。VS允许您运行任意一组命令作为构建

c++ - QtScript vs QJSEngine 什么时候使用一个或另一个?

我必须在C++应用程序中运行一系列javascript“脚本”。其中大部分是重复Action。代码示例here.我知道Qt,因为第5版包含2个javascript引擎:QtScript和QJSEngine。我的问题是我们应该在哪些情况下使用一种或另一种?哪个在哪些情况下表现更好? 最佳答案 如果您正在进行新的开发并且还没有真正依赖它们中的任何一个,那么您绝对应该选择QJSEngine。例如,您可以找到许多从技术角度解释差异的文章我建议看看这个thread以及this一个。现在QtScript是Qt的一个纯粹的兼容性部分,缺乏QML集

c++ - 如何使静态导入库依赖于CMake中的另一个静态导入库?

我希望我的项目中很少更改的某些部分被静态编译并“安装”在单独的目录中。这是必要的,因为由于项目的某些细节,它经常必须从头开始重新编译(删除整个构建目录)。在单独的目录中“安装”静态链接库将显着减少构建时间。我一开始有什么。假设LibA很少更改,我希望它只安装一次,而不是在大多数项目构建期间重新构建。LibA依赖于一些第3方导入的库LibC。项目还包含经常更改并依赖于LibA的LibB。CMakeLists.tst(LibB):target_link_libraries("LibB"LibA_build)CMakeLists.tst(LibA):add_library(LibA_buil

c++ - CMake 相当于 Visual Studio 的 Property Sheets (.vsprops)

我正在尝试从VisualStudio迁移到Jetbrains(很棒)CLionIDE使用CMake组织项目。到目前为止,过渡一直很顺利:创建CMake项目并将它们导入CLion很容易,我可以在一个平台上开始编码,然后在另一个平台上继续,没有任何问题。但是,我在CMake中找不到对应的VisualStudio的一个方面是propertysheets:我主要使用它们来保存包含目录的路径和库的链接库(即每个库一个.vsprops文件,例如OpenCV.vsprops,Boost.vsprops等)。这样,在VS中,我可以在不同项目之间共享库的.vsprops文件,而无需每次都配置路径/库。C

Python 字典与 C++ 标准 :unordered_map (cython) vs cythonized python dict

我试图测量python字典、cythonizedpython字典和cythonizedcppstd::unordered_map之间的性能,只做一个初始化过程。如果编译cythonizedcpp代码我认为它应该比纯python版本更快。我使用4种不同的场景/符号选项进行了测试:使用std::unordered_map和Cythonbooknotation的CythonCPP代码(定义一对并使用插入方法)使用std::unordered_map和python符号(map[key]=value)的CythonCPP代码使用python字典(map[key]=value)的Cython代码(

c++ - 子目录中的CMake链接库

我正在尝试在我的项目中包含SFML源代码。我的目录布局如下:mainSFML(subtreesyncedwiththeofficialgitrepo)srcGeneral(hereliesthebinary)从主级别开始,我首先添加SFML子目录,然后添加src。正如我在查看构建日志时看到的那样,这会生成库:sfml‑systemsfml‑windowsfml‑networksfml‑graphicssfml‑audiosfml‑main现在我想像这样将它们链接到General目录中的二进制文件:add_executable(main${main_SRCS})target_link_l

c++ - unsigned long vs size_t 导致函数重载失败

我定义了一个函数:voidmyfunc(size_tparam1,size_tparam2){...}它工作正常。但是当我尝试重载这个函数时voidmyfunc(unsignedlongparam1,unsignedlongparam2){...}编译失败,提示如下:错误:无法重载myfunc(unsignedlongparam1,unsignedlongparam2)。如何在不将输入参数静态转换为size_t的情况下解决这个问题?谢谢! 最佳答案 听起来size_t和unsignedlong在您的系统上是同一类型;编译器提示你有两