草庐IT

CMAKE_CUDA_ARCHITECTURES

全部标签

c++ - CMake 和 Clang 工具链接错误(树外)

我正在尝试编译RecursiveASTVisitorexampleofClang使用CMake文件。构建项目进行得很顺利,但是,由于对LLVM和Clang库的多个undefinedreference,链接C++可执行文件失败。我正在LLVM/Clang源文件树之外构建示例。这是我的CMakeLists.txt(我正在使用FindClang.cmakeandFindLLVM.cmakefromthisproject):cmake_minimum_required(VERSION2.8.4)project(ifcount)set(CMAKE_MODULE_PATH${CMAKE_CURRE

c++ - CMake:尝试将链接库添加到未在此目录中构建的目标

我在编译我的cmake项目中的一些单元测试时遇到问题。我的想法是将这些boost单元测试添加为可执行文件,以便我可以运行它们。无论如何,我收到了这个我不明白的错误,这就是说我无法链接我的cpp单元测试,必须链接它才能测试我构建的库。我尝试链接和添加为可执行文件的两个单元测试是DownloadTickers.cpp和GetTickersForLetter.cpp。我的目录结构如下:>Algo>build(thisiswhereIdo:cmake..whichgivesmeerrors)-CMakeLists.txt(toplevelcmake)-algo.h.ini-run.cpp>Ne

c++ - 将 CMake 对象库与共享库相结合

我有以下CMakeLists.txt定义了一个对象库和一个依赖于对象库的共享库,如下所示:add_library(fooOBJECTfoo.cpp)add_library(barSHAREDbar.cpp$)add_executable(bazbaz.cpp)target_link_libraries(bazPUBLICbar)我在链接baz时收到以下链接器错误:/usr/bin/ld:CMakeFiles/foo.dir/foo.cpp.o:relocationR_X86_64_PC32againstsymbol`_ZSt4cout@@GLIBCXX_3.4'cannotbeused

c++ - 使用 CMAKE 检查编译器中是否启用了 c++11 功能

我正在使用CMake开发一个项目。我的代码包含constexpr方法,这些方法在VisualStudio2015中允许,但在VisualStudio2013中不允许。如果指定的编译器支持该功能,我如何检查CMakeLists.txt?我在CMake文档中看到过CMAKE_CXX_KNOWN_FEATURES,但我不明白如何使用它。 最佳答案 您可以使用target_compile_features要求C++11(/14/17)特性:target_compile_features(targetPRIVATE|PUBLIC|INTERF

c++ - 使用 cmake 构建我的 C++ 项目的正确方法?

我已经为此苦苦挣扎了很长一段时间,而我使用cmake的冒险只导致了我非常确定不正确的骇人听闻的解决方案。我创建了一个由几个文件组成的库,如下:-libfolder-codepart1folder-CMakeLists.txt-codepart1.cpp-codepart1.hpp-codepart2folder-codepart3folder-lib.cpp-lib.hpp-CMakeLists.txt我写了一个CMakeLists文件来编译库(经过一些实验),我可以生成一个lib.a文件。现在我想将这段代码作为库包含在其他项目中,并通过lib.hpp中的接口(interface)访问

c++ - 自 Mojave 以来,链接在 Homebrew 软件的 cmake 中不起作用

我现在已经在两台计算机上重现了这个症状,cmake似乎不再在/usr/local/lib中查找(或者更准确地说,$(brew--prefix)/lib)用于Homebrew提供的库,因为我的机器升级到macOSMojave。尽管有一些方法可以避免这种情况(例如,使用EXECUTE_PROCESS搜索Homebrew程序前缀;将结果添加到LINK_LIBRARIES(...)命令),但没有一个是理想的。Mojave中发生了什么改变来打破这种行为?临时解决方法是将以下内容添加到CMakeLists.txt:#WARNING:Don'thard-codethispathLINK_DIRECT

c++ - 简单 CUDA 测试总是失败并出现 "an illegal memory access was encountered"错误

如果我运行这个程序,我会收到“在第48行的matrixMulti.cu中遇到非法内存访问”错误。我搜索并尝试了很多。所以我希望有人能帮助我。Line48:HANDLE_ERROR(cudaMemcpy(array,devarray,NNsizeof(int),cudaMemcpyDeviceToHost));该程序只是为了进入CUDA。我尝试实现矩阵乘法。#include#include#includeusingnamespacestd;#defineHANDLE_ERROR(err)(HandleError(err,__FILE__,__LINE__))voidprintVec(in

c++ - CMake 在使用 android-cmake 工具链文件时找不到 Boost 库

我正在尝试为使用Boost库的代码创建一个CMake项目。我想为Android构建它,我正在使用这个项目作为引用:https://code.google.com/p/android-cmake/.我想使用我之前为android构建的Boost静态库,而不是将它们作为要编译的项目的一部分。这是我使用Boost的项目部分的CMakeLists.txt#BOOSTset(BOOST_ROOT/home/neb/workspace/SDLActivityCMAKE/jni/boost)set(Boost_INCLUDE_DIR/home/neb/workspace/SDLActivityCMA

CUDA基础(三)CPU架构,指令,GPU架构

一、CPU架构(指令的执行)CPU中央处理器,负责执行用户和操作系统下发的指令。CPU只能接受01二进制语言,0和1用来控制高低电位。比如,一个加法运算,在x86处理器上的的二进制代码为:010010000000000111000011这样一行代码被称为机器码,它执行了加法操作。除了这样的加法,CPU的电路还要实现很多其他指令,如存取内存数据,进行逻辑判断等。不同厂商的电路设计不同,在电路上所能进行的二进制码不同。某类CPU能支持一种指令集(instructionsetarchitecture)。指令集相当于一种设计图纸,规定了一种CPU架构实现哪些指令。参照指令集,硬件开发人员只需要关心如何

c++ - CUDA - 如果我选择了太多 block 怎么办?

我仍然对这些未知大小的矩阵很生气,每个维度可能在10-20.000之间变化。我正在查看CUDASDK并想知道:如果我选择的block数太高怎么办?类似于在X和Y维度上由9999x9999block组成的网格,如果我的硬件具有无法容纳所有这些block的SM,内核是否会出现问题或者性能会崩溃?我不知道如何在block/线程中标注可能变化很大的东西。我正在考虑使用我的硬件支持的最大块数,然后使它们内部的线程在所有矩阵中工作,这是正确的方法吗? 最佳答案 线程block与核心没有一对一的映射。block在可用时被安排到核心,这意味着您可以