草庐IT

CMAKE_C_COMPILER

全部标签

c++ - C1001 : An internal error has occurred in the compiler

这应该是不言自明的。我正在尝试实现分布排序,但MSVC编译器崩溃了。这似乎是用我的SFINAE检测成员函数的特定情况,如果我不将indexert传递给函数,或者替换has_get_index,这似乎不会发生。如果我删除剩余的索引器重载中的任何一个,它也不会发生。如果sortable有一个getIndex()const成员,问题仍然存在。1>test.cpp(34):fatalerrorC1001:Aninternalerrorhasoccurredinthecompiler.1>(compilerfile'msc1.cpp',line1420)1>Toworkaroundthispro

c++ - 使用 CMake 查找使用 CLang 编译的 Boost

我已经使用rubenvb在Windows上编译了Boost1.51.0|的CLang构建。我实际上使用MinGW编译了b2:bootstrapmingw...compilingb2usingmingw...然后我用CLang编译了这些库:b2toolset=clangstage--stagedir=.--build-type=complete--with-regex...顺便说一句,即使我指定了--build-type=completelib目录中也没有DLL,但我在某处读到CLang在Windows上的链接仍然存在问题,所以这可能是原因。无论如何,静态库对我来说很好。我在%BOOST

c++ - 无法导出 cmake PROJECT_VERSION_MAJOR,因为它等于零

我在将cmakePROJECT_VERSION_MAJOR变量导出到config.h文件时遇到问题。在我的主CMakeLists.txt中,我通过在主CMakeLists.txt文件中调用project()来根据cmake文档设置此变量:cmake_minimum_required(VERSION3.2.2)cmake_policy(SETCMP0048NEW)set(PROJECT"SampleName")project(${PROJECT}VERSION"0.0.0")configure_file(${CMAKE_SOURCE_DIR}/cmake/config.h.cmake${

c++ - 强制 CMake 在每次构建时生成 configure_file 目标

我的CMakeLists.txt文件中有以下命令configure_file([...]/Version.h.in[...]/Version.h@ONLY)如何让它在每次构建时都运行,而不仅仅是在Version.h.in更改时运行?我需要它,因为Version.h中有__DATE__宏,实际上每个构建都应该被视为新的,即使它保持不变也是如此。Version.h.in看起来像staticconstcharVERSION[]="Bla-bla-bla"@FOOBAR@"builton"__DATE__; 最佳答案 我将我的版本字符串生成

c++ - CMake + 库达 : compile cpp files in Cuda-mode (--x=cu)

假设我有一个文件,我们称它为foo.cpp,我的目标是在cuda模式下用nvcc编译这个文件。在命令行中,这可以通过调用轻松完成:nvcc--x=cufoo.cpp我正在苦苦挣扎的是让CMake做同样的事情。事实证明,CMake命令cuda_add_executable(foofoo.cpp)将过滤*.cpp文件并使用c++编译器(而不是nvcc)。请注意,将所有文件重命名为*.cu不是一种选择,因为代码库还必须支持非cuda构建。 最佳答案 在FindCUDAsourcecode我找到了一个选项来为特定的非.cu文件激活CUDA编

c++ - 将 CMake 与 LLVM 一起使用时出错

所以我正在尝试使用LLVM构建一个玩具编译器,并且我想使用CMake作为我的构建系统。我尝试使用sampleCMakeLists.txt来自LLVM的网站,但在运行cmake时遇到以下错误:CMakeErrorat/usr/share/llvm-3.8/cmake/LLVMConfig.cmake:178(include):includecouldnotfindloadfile:/usr/share/llvm/cmake/LLVMExports.cmakeCallStack(mostrecentcallfirst):CMakeLists.txt:4(find_package)CMake

c++ - 如何从 CMake 中隐藏 Visual Studio 中的目标

我正在使用CMake生成.sln。我想使用GoogleTest并使用那种代码来添加新测试:add_executable(my_testtest/my_test.cpp)target_link_libraries(my_testgtestgmock_main)add_test(NAMEmy_testCOMMANDmy_test)它工作正常,但是当我打开我的.sln时,我的所有目标都出现在解决方案资源管理器中:库、单元测试等。有没有办法隐藏这些目标? 最佳答案 您不能在cmake(ATM)中仅明确地做到这一点,但这里有一种方法可以更有效

c++ - CMake 与 Qt3d 用于 Qt5?

我已经从ubuntu-developers存储库(我在Ubuntu13.04下)安装了Qt5和Qt3d,我想用CMake编译一个非常简单的应用程序(我的版本是2.8.10.1)。Qthelloworld的工作CMakeLists.txt如下:cmake_minimum_required(VERSION2.8.8)project(testproject)#Findincludesincorrespondingbuilddirectoriesset(CMAKE_INCLUDE_CURRENT_DIRON)#InstructCMaketorunmocautomaticallywhenneed

c++ - CMake:如何更改子目录项目目标的属性?

我试图在我的子项目(在本例中为poco)中组织目标,但我发现无法为ALIAS目标修改属性。我希望我的外部项目中的目标位于它们自己的文件夹中,而不是散布在项目树中的任何地方(比如visualstudio生成器)。有没有更简单的方法来添加具有我自己的属性的项目?所以代替:-CMakePredefinedTargets-ALL_BUILD-INSTALL-...-MyTargets-SomeLibrary-SomeExe-CppUnit-Crypto-Data-...我要:-CMakePredefinedTargets-ALL_BUILD-INSTALL-...-MyTargets-Some

c++ - VC++ 使用 fp :fast causes wrong (not just inaccurate) results - is this a compiler bug?

我已经安装了最新的VS2017更新(15.4.4),但在编译我们的项目时,单元测试开始失败。在使用优化(/O2)和浮点快速模型(/fp:fast)时,问题似乎发生在某些情况下。以前的编译器(VS2017update15.2)没有出现这个问题。这是一个示例程序:#includeconstfloatFACTOR=0.01745329251994329576923690768489f;unsignedlonglonghoursToMicrosecs(inthours){returnhours*3600*1000000LL;}floatdegToRad(floatdeg){returndeg*