我四处寻找答案,如果这是我无法自行解决的琐碎问题,我深表歉意。
我刚拿到带有双 780i GPU 的新 Alienware aurora,我将用它来进行 CT 图像重建。我计划在 OpenCL 中工作,因为那是我已经知道的。到目前为止,我只在 Mac 上工作,使用 OpenCL 框架编译代码非常简单。现在,在 Windows 8.1 中,情况有所不同。
我已经安装了 NVidia Cuda SDK,它带有所有 OpenCL header 和库(全部安装在标准位置),并开始尝试使用 MinGW 配置 Code::blocks 以编译和链接OpenCL 库。我总是遇到同样的错误(向下滚动查看)。我以前链接过库,所以我 99% 在那里正确配置了东西,但显然我错过了一些东西。要查看我做了什么,请访问 http://www.obellianne.fr/alexandre/tutorials/OpenCL/tuto_opencl_codeblocks.php .
我已经转向命令行,以便我可以更全面地配置东西,但是唉,即使我进行了所有仔细的配置,我仍然会遇到同样的错误。
我一直在 DOS 提示符下使用的调用如下:
gcc -v -Wall -std=c99 -I "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" -L "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\lib\x64" main.c -lOpenCL
我的输出是这样的:
C:\Users\john\AppData\Local\Temp\ccGTa4TT.o:main.c:(.text+0x5f): undefined reference to `clGetPlatformIDs@12'
C:\Users\john\AppData\Local\Temp\ccGTa4TT.o:main.c:(.text+0xb5): undefined reference to `clGetDeviceIDs@24'
C:\Users\john\AppData\Local\Temp\ccGTa4TT.o:main.c:(.text+0xf3): undefined reference to `clGetDeviceIDs@24'
C:\Users\john\AppData\Local\Temp\ccGTa4TT.o:main.c:(.text+0x141): undefined reference to `clGetDeviceInfo@20'
C:\Users\john\AppData\Local\Temp\ccGTa4TT.o:main.c:(.text+0x18f): undefined reference to `clGetDeviceInfo@20'
C:\Users\john\AppData\Local\Temp\ccGTa4TT.o:main.c:(.text+0x1bf): undefined reference to `clGetDeviceInfo@20'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: C:\Users\john\AppData\Local\Temp\ccGTa4TT.o: bad reloc address 0x20 in section `.eh_frame'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
(我已经剔除了一些东西,但如果需要可以更新更多细节)
奇怪的是,经过多次调整后,链接器正在链接库(好吧,不是,但至少找到了库并尝试链接它)。
我知道当 -lOpenCL 放在错误的位置时,人们会遇到这些问题,所以我尝试将它放在我能想到的任何地方,但没有成功。它总是抛出相同的错误。
我程序的源代码可以在最底部找到。它是从一本书示例中剪切和粘贴的,我已经在我的 mac 上成功编译了它。
有什么想法吗?
谢谢, 约翰
#include <stdio.h>
#include <stdlib.h>
#include <CL/cl.h>
int main()
{
/* Host/device data structures */
cl_platform_id platform;
cl_device_id dev;
cl_uint addr_data;
cl_int err;
/* Extension data */
char name_data[48], ext_data[4096];
/* Identify a platform */
err = clGetPlatformIDs(1, &platform, NULL);
if(err < 0) {
perror("Couldn't find any platforms");
exit(1);
}
/* Access a device, preferably a GPU */
/* Changed on 2/12 to fix the CL_INVALID_VALUE error */
err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &dev, NULL);
if(err == CL_DEVICE_NOT_FOUND) {
err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_CPU, 1, &dev, NULL);
}
if(err < 0) {
perror("Couldn't access any devices");
exit(1);
}
/* Access device name */
err = clGetDeviceInfo(dev, CL_DEVICE_NAME,
48 * sizeof(char), name_data, NULL);
if(err < 0) {
perror("Couldn't read extension data");
exit(1);
}
/* Access device address size */
clGetDeviceInfo(dev, CL_DEVICE_ADDRESS_BITS,
sizeof(addr_data), &addr_data, NULL);
/* Access device extensions */
clGetDeviceInfo(dev, CL_DEVICE_EXTENSIONS,
4096 * sizeof(char), ext_data, NULL);
printf("NAME: %s\nADDRESS_WIDTH: %u\nEXTENSIONS: %s\n",
name_data, addr_data, ext_data);
return 0;
}
最佳答案
想通了。这很好,因为我快要精神崩溃了。
使用我安装的 mingw 版本(通过安装程序工具),我必须链接到 32 位库。
关于c - 在 Windows 8 (MinGW) 中链接 OpenCL 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24792482/
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
我正在尝试用Prawn生成PDF。在我的PDF模板中,我有带单元格的表格。在其中一个单元格中,我有一个电子邮件地址:cell_email=pdf.make_cell(:content=>booking.user_email,:border_width=>0)我想让电子邮件链接到“mailto”链接。我知道我可以这样链接:pdf.formatted_text([{:text=>booking.user_email,:link=>"mailto:#{booking.user_email}"}])但是将这两行组合起来(将格式化文本作为内容)不起作用:cell_email=pdf.make_c
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
我在目录“C:\DocumentsandSettings\test.exe”中有一个文件,但是当我用单引号编写命令时`C:\DocumentsandSettings\test.exe(我无法在此框中显示),用于在Ruby中执行命令,我无法这样做,我收到的错误是找不到文件或目录。我尝试用“//”和“\”替换“\”,但似乎没有任何效果。我也使用过系统、IO.popen和exec命令,但所有的努力都是徒劳的。exec命令还使程序退出,这是我不想发生的。提前致谢。 最佳答案 反引号环境就像双引号,所以反斜杠用于转义。此外,Ruby会将空格解
我有一个未排序的链接列表,我将其保存在旁边,我想单击每个链接并确保它转到真实页面而不是404、500等。问题是我不知道该怎么做。是否有一些我可以检查的对象会给我http状态代码或任何东西?mylinks=Browser.ul(:id,'my_ul_id').linksmylinks.eachdo|link|link.click#needtocheckfora200statusorsomethinghere!how?Browser.backend 最佳答案 我的回答与铁皮人的想法类似。require'net/http'require'
我一直在玩一个脚本,它在Chrome中获取选定的文本并在Google中查找它,提供四个最佳选择,然后粘贴相关链接。它以不同的格式粘贴,具体取决于当前在Chrome中打开的页面-DokuWiki打开的DokuWiki格式,普通网站的HTML,我想要我的WordPress所见即所得编辑器的富文本。我尝试使用pbpaste-Preferrtf来查看没有其他样式的富文本链接在粘贴板上的样子,但它仍然输出纯文本。在文本编辑中保存文件并进行试验后,我想出了以下内容text=%q|{\rtf1{\field{\*\fldinst{HYPERLINK"URL"}}{\fldrsltTEXT}}}|te
基本上,我试图在用户单击链接(或按钮或某种类型的交互元素)时执行Rails方法。我试着把它放在View中:但这似乎没有用。它最终只是在用户甚至没有点击“添加”链接的情况下调用该函数。我也用link_to试过了,但也没用。我开始认为没有一种干净的方法可以做到这一点。无论如何,感谢您的帮助。附言。我在ApplicationController中定义了该方法,它是一个辅助方法。 最佳答案 View和Controller是相互独立的。为了使链接在Controller内执行函数调用,您需要对应用程序中的端点执行ajax调用。该路由应调用rub