- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用带有炼金术的 OpenCV 构建一个项目。我的想法是从 OpenCV (v.2.2) 中分离出我需要的部分,用炼金术 g++ 编译它们并静态链接我的代码。所以这就是我所做的:
首先,我一个一个地编译所需的 opencv 源代码(我需要 core、imgproc 和其他一些):
alc-on; for src in *.cpp ; do g++ -I../../include -DOSX -c -Wall -O3 -o ${PWD##*/}_`basename $src .cpp`.o $src ; done ; mv -v *.o ~/dev/cut/obj/
然后我尝试构建这个简单的 Flash-OpenCV 交互测试并将其链接到我如上所述构建的所有 .o:
#include <opencv/cv.h>
#include "AS3.h"
void testCV()
{
cv::Mat a(3,3,CV_8UC1,cv::Scalar(1.0));
cv::Mat b(3,3,CV_8UC1,cv::Scalar(2.0));
cv::Mat c;
c=a+b;
}
static AS3_Val test(void* self, AS3_Val args)
{
testCV();
return 0;
}
int main()
{
AS3_Val testMethod = AS3_Function(NULL,test);
AS3_Val result = AS3_Object("test: AS3ValType",testMethod);
AS3_Release(testMethod);
AS3_LibInit(result);
return 0;
}
接下来,假设我在同一个文件夹中有源代码和所有需要的 .o,我尝试将它们编译为 swc:
g++ -I../include -Wall -O3 -DOSX -swc test_cv.cpp *.o -o cvtest.swc
(注意:使用“ar rc”和“ranlib”创建库存档并链接到它具有相同的效果)
此时,我从炼金术工具(我猜是 llvm)得到以下错误报告:
Assertion failed: (TLI.isTypeLegal(VT) && "Intrinsic uses a non-legal type?"), function visitTargetIntrinsic, file /Volumes/data/dev/FlaCC/llvm-2.1/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp, line 2465.
0 llc 0x00636dfe _ZNSt8_Rb_treeIN4llvm3sys4PathES2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13insert_uniqueERKS2_ + 6078
1 llc 0x006373a2 _ZNSt8_Rb_treeIN4llvm3sys4PathES2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13insert_uniqueERKS2_ + 7522
2 libSystem.B.dylib 0x9125e05b _sigtramp + 43
3 ??? 0xffffffff 0x0 + 4294967295
4 libSystem.B.dylib 0x912eb5a5 raise + 26
5 libSystem.B.dylib 0x913016e4 abort + 93
6 libSystem.B.dylib 0x912ee20f __assert_rtn + 252
7 llc 0x003f3e2a _ZN4llvm11StoreSDNodeD1Ev + 90026
8 llc 0x003f5256 _ZN4llvm11StoreSDNodeD1Ev + 95190
9 llc 0x003f817c _ZN4llvm11StoreSDNodeD1Ev + 107260
10 llc 0x0040bc68 _ZN4llvm11StoreSDNodeD1Ev + 187880
11 llc 0x0040d3f2 _ZN4llvm11StoreSDNodeD1Ev + 193906
12 llc 0x0040f92e _ZN4llvm11StoreSDNodeD1Ev + 203438
13 llc 0x005d1926 _ZN4llvm12FunctionPassD1Ev + 20998
14 llc 0x005d1f3a _ZN4llvm12FunctionPassD1Ev + 22554
15 llc 0x005d20c5 _ZN4llvm12FunctionPassD1Ev + 22949
16 llc 0x00002e44 0x0 + 11844
17 llc 0x00001f36 0x0 + 7990
18 ??? 0x00000006 0x0 + 6
我发现问题出在文件 matop.o(来自 OpenCV 核心模块的 matop.cpp),但我不能将其从链接中删除,因为它会导致 flash 运行时出现 undefined symbol 错误(它找不到 cv::添加,如果我没记错的话)。
谁能建议任何方法来识别真正的问题以及任何(甚至是肮脏的黑客风格)解决方法?
我在 adobe alchemy 论坛上关于问题和解决方法的帖子:http://forums.adobe.com/message/3891743#3891743
最佳答案
肮脏的 hack 解决方法:从 OpenCV2.0 核心 arithm.cpp 的顶部删除定义的部分
#if CV_SSE2
...
#else
只留下 else 部分。这适用于上面的示例。
OpenCV 的其他部分可能需要更令人难以置信的精巧破解。
关于c++ - 奇怪的 Adobe Alchemy 编译器失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257620/
我有这种来自 Google map 自动完成的奇怪行为(或者我可能错过了某事)...想法?奇怪的: 您在输入中输入某物,例如“伦敦” 您按 [ENTER] 你按下 [CLEAR] 按钮 你点击进入'输
这段代码与《Learning Java》(Oracle Press Books)一书中的代码完全一样,但它不起作用。我不明白为什么它不起作用,它应该起作用。我用 OpenJDK 和 Sun JDK 7
示例 1 中究竟发生了什么?这是如何解析的? # doesnt split on , [String]::Join(",",("aaaaa,aaaaa,aaaaa,aaaaa,aaaaa,aa
我需要获得方程式系统的解决方案。为此,我使用函数sgesv_()。 一切都很好,它使我感到解决方案的正确结果。 但是我得到一个奇怪的警告。 警告:从不兼容的指针类型传递'sgesv_'的参数3 我正在
我目前在制作动画时遇到一个奇怪的问题: [UIView animateWithDuration:3 delay:0
alert('works'); $(window).load(function () { alert('does not work'); });
我的代码: public class MyTest { public class StringSorter implements Comparator { public
我正在学习 JavaScript。尝试理解代码, function foo (){ var a = b = {name: 'Hai'}; document.write(a.name +''
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
这按预期工作: [dgorur@ted ~]$ env -i env [dgorur@ted ~]$ 这样做: [dgorur@ted ~]$ env -i which date which: no
struct BLA { int size_; int size()const{ return size_; } } int x; BLA b[ 2 ]; BLA * p = &b[
我有以下代码: #test img {vertical-align: middle;} div#test { border: 1px solid green; height: 150px; li
我想大多数使用过 C/C++ 的人都对预处理器的工作原理有一定的直觉(或多或少)。直到今天我也是这么认为的,但事实证明我的直觉是错误的。故事是这样的: 今天我尝试了一些东西,但我无法解释结果。首先考虑
我想为 TnSettings 做 mock,是的,如果通过以下方法编写代码,它就可以工作,问题是我们需要为每个案例编写 mock 代码,如果我们只 mock 一次然后执行多个案例,那么第二个将报告异常
我的项目中有以下两个结构 typedef volatile struct { unsigned char rx_buf[MAX_UART_BUF]; //Input buffer over U
Regex rx = new Regex(@"[+-]"); string[] substrings = rx.Split(expression); expression = "-9a3dcb
我的两个应用程序遇到了一个奇怪的问题。这是设置: 两个 tomcat/java 应用程序,在同一个网络中运行,连接到相同的 MS-SQL-Server。一个应用程序,恰好按顺序位于 DMZ 中可从互联
我目前正在与 Android Api Lvl 8 上的 OnLongClickListener 作斗争。 拿这段代码: this.webView.setOnLongClickListener(new
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
只是遇到了奇怪的事情。我有以下代码: -(void)ImageDownloadCompleat { [self performSelectorOnMainThread:@selector(up
我是一名优秀的程序员,十分优秀!