草庐IT

cross-compiling

全部标签

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++ - 带有 -isysroot 的 gcc 创建包含以等号 "="开头的包含路径并且编译失败

我正在使用适用于arm(arm-none-linux-gnueabi)的CodeSourcery工具链进行交叉编译。我使用-isysroot指向rootfs文件夹下的/usr/include文件夹,但在编译时遇到了麻烦。我已验证包含文件夹可访问。下面是gcc调用和输出。一些输出已被删除,因为我认为它不相关。预处理器提供了一个包含路径,除了以“=”开头的字符外,该路径是正确的,并指示该路径不存在。然后找不到头文件。我怎样才能让它工作?willem@jacta:~/Projects/button/Debug$arm-none-linux-gnueabi-gcc-isysroot=/home

c++ - 为 Raspberry Pi 交叉编译 rethinkdb

当前运行的是Ubuntu14.04x86_64。我想为我的RPi交叉编译rethinkdb以用于实验目的,1.12支持它(并且人们显然已经成功编译)。我已经安装了工具链:sudoapt-getinstallg++-4.7-arm-linux-gnueabigcc-arm-linux-gnueabiexportCXX=/usr/bin/arm-linux-gnueabi-g++-4.7exportCC=/usr/bin/arm-linux-gnueabi-gcc-4.7exportAR=/usr/bin/arm-linux-gnueabi-arexportLD=/usr/bin/arm-

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*

c++ - 将指针转换为模板参数 : Comeau & MSVC compile, GCC 失败

考虑以下代码:templateclassbase{};intmain(){basetest;return0;}Comeau和MSVC都可以毫无问题地编译它(除了Comeau警告未使用的变量),而GCC在basetest;上失败行,说明Infunction`intmain()':acaststoatypeotherthananintegralorenumerationtypecannotappearinaconstant-expressiontemplateargument1isinvalid它到底在提示什么?谁是对的——这段代码应该编译吗?值得注意的是,我的GCC版本非常旧(3.4.2

c++ - Opencv 错误 : no GPU support (library is compiled without CUDA support)

我正在尝试使用CUDA在GPU上使用opencv处理一些图像处理任务。我正在使用ubuntu。我毫无问题地设置了我的两个产品Opencv和Cuda,我确信这一点。但是,当我尝试在eclipse中运行sampleCOde时,出现错误:OpenCV错误:在mallocPitch中没有GPU支持(库在没有CUDA支持的情况下编译),文件/home/muad/Source/OpenCV-2.4.2/modules/core/src/gpumat.cpp,第749行我重做了我的opencv,但我还是明白了。 最佳答案 如文档中所述,您必须使用

c++ - 为什么library API + compiler ABI就足以保证不同版本gcc对象之间的兼容性?

我遇到过这样一种情况,我可能想将使用一个版本的gcc编译的C++共享对象库与一些将使用另一个版本的gcc编译的代码一起使用。特别是,我想使用返回一些STL容器的方法,例如std::string和std::map。gccwebsite许多旧的stackoverflow帖子(例如here)讨论了这个问题。我目前的理解是关于此问题的大部分关注和帖子都是关于.so文件和.dll文件之间的交叉兼容性。由于不同的编译器ABI,这非常困难。对于使用不同版本的gcc(至少gcc版本>=3.4)编译的.so文件之间的交叉兼容性,您需要确保标准库API没有改变(并且,如果它有,有dualABI支持)。我的

c++ - ARM 交叉编译

我正在编写一个C++应用程序并尝试为arm进行交叉编译:sudoapt-getinstallgcc-4.4-arm-linux-gnueabi但是在/usr/arm-linux-gnueabi/include目录中我找不到c++目录。谁能告诉我在哪里可以找到它? 最佳答案 安装C++编译器:sudoapt-getinstallg++-4.4-arm-linux-gnueabi 关于c++-ARM交叉编译,我们在StackOverflow上找到一个类似的问题:

开发安全之:Cross-Site Scripting: DOM

Overview方法setDestination()向Web浏览器发送非法数据,从而导致浏览器执行恶意代码。DetailsCross-SiteScripting(XSS)漏洞在以下情况下发生:1.数据通过一个不可信赖的数据源进入Web应用程序。对于基于DOM的XSS,将从URL参数或浏览器中的其他值读取数据,并使用客户端代码将其重新写入该页面。对于ReflectedXSS,不可信赖的数据源通常为Web请求,而对于Persisted(也称为Stored)XSS,该数据源通常为数据库或其他后端数据存储。2.未经验证但包含在动态内容中的数据将传送给Web用户。对于基于DOM的XSS,任何时候当受害人

C++14 元编程 : Automagically build a list of types at compile/init time

使用C++14和CuriouslyRecurringTemplatePattern(CRTP)以及可能的Boost.Hana的某种组合(或boost::mpl如果您愿意),我可以在编译时(或静态初始化时)构建一个类型列表而无需显式声明吗?例如,我有这样的东西(在Coliru上查看):#include#include#includenamespace{structD1{staticconstexprautoval=10;};structD2{staticconstexprautoval=20;};structD3{staticconstexprautoval=30;};}intmain(