我试图提供一些带有一些可执行文件的"源"文件.我想知道是否有办法将这些源文件复制到构建目录(从源目录),然后使用CMake复制到安装目录.
我在这里更具体的目标是包含我在自己的*.cl文件中编写的OpenCL内核.
例:
mkdir build
cd build
cmake ..
make
Run Code Online (Sandbox Code Playgroud)
现在我的目录应该有一个可执行文件(标准CMake),并some_opencl_kernel.cl
在我的可执行文件中打开.
我无法找到详细介绍函数调用和返回值的API ......标题也不是很干净......
我找到了大量的例子,但我对错误处理(返回值)很感兴趣.我是否接近这个错误,因为我正在试图找到像这个知名图书馆的功能列表一样基本的东西.
我一直试图让我的项目运行,但我遇到了麻烦.经过大量调试后,我已经缩小了问题但不知道如何继续.
一些背景,我在C++代码中使用python脚本.这在Python上有所记录,我设法让它在我的基本可执行文件中运行得很好.#include和-lpython2.6,一切都很棒.
但是,从共享库(.so)运行此python脚本时出现了困难.该共享库由模拟系统(OpenRAVE)"加载"为"模块".系统使用名为SendCommand的"模块"的虚拟方法与此模块交互.然后该模块启动boost :: thread,为python提供自己的线程,并返回到模拟系统.但是,当python开始导入其模块并因此加载其动态库时,它会失败,我假设由于以下错误:
ImportError: /usr/lib/python2.6/dist-packages/numpy/core/multiarray.so: undefined symbol: _Py_ZeroStruct
我在我的可执行文件和共享库上运行了ldd,没有一些区别.我还在上面的文件上运行了nm -D,_Py_ZeroStruct确实是未定义的.如果你们想要打印命令,我很乐意提供它们.非常感谢任何建议,谢谢.
这是完整的python错误:
Traceback (most recent call last): File "/usr/lib/python2.6/dist-packages/numpy/__init__.py", line 130, in import add_newdocs File "/usr/lib/python2.6/dist-packages/numpy/add_newdocs.py", line 9, in from lib import add_newdoc File "/usr/lib/python2.6/dist-packages/numpy/lib/__init__.py", line 4, in from type_check import * File "/usr/lib/python2.6/dist-packages/numpy/lib/type_check.py", line 8, in import numpy.core.numeric as _nx File "/usr/lib/python2.6/dist-packages/numpy/core/__init__.py", line 5, in import multiarray ImportError: /usr/lib/python2.6/dist-packages/numpy/core/multiarray.so: undefined symbol: _Py_ZeroStruct Traceback (most recent call last): File "/home/constantin/workspace/OpenRAVE/src/grasp_behavior_2.py", line 3, in from openravepy import * File "/home/constantin/workspace/rospackages/openrave/lib/python2.6/site-packages/openravepy/__init__.py", …
我无法使用autconf为我的arm板交叉编译库.
我正在使用这一行:
./configure --target=arm-linux --host=arm-linux --prefix=/bla/bla/bla/linux_arm_tool CFLAGS='-m32'
make
make install
Run Code Online (Sandbox Code Playgroud)
当我做file
检查时,我得到:
libjpeg.so.8.4.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
Run Code Online (Sandbox Code Playgroud)
这看起来根本不对,但无论如何我都尝试使用它......我得到:
/usr/lib/gcc/arm-linux-gnueabi/4.5.3/../../../../arm-linux-gnueabi/bin/ld: skipping incompatible /bla/bla/bla/bla/../linux_arm_tool/lib/libjpeg.so when searching for -ljpeg
Run Code Online (Sandbox Code Playgroud)
我很茫然,我一直在谷歌上搜索一小时......
我试图为自定义实现选择器可绘制资源ArrayAdapter
.我一直在得到一个android.content.res.Resources$NotFoundException: File res/drawable/list_selector.xml from drawable resource ID #0x7f020
有人可以提供建议吗?
我有两个xml文件:
RES /抽拉/ list_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_checked="true" android:color="@android:color/white" />
<item android:state_checked="false" android:color="@android:color/black" />
</selector>
Run Code Online (Sandbox Code Playgroud)
RES /布局/ list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/casualty_text_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/list_selector"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
最后,我的代码加载列表项,如下所示:
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
TCCC cur_object = getItem(position);
View cur_view = convertView;
if(cur_view == null)
{
System.out.println("Inflating!");
cur_view = View.inflate(getContext(), …
Run Code Online (Sandbox Code Playgroud) 我在通过命令行设置配置变量时遇到问题.我无法从系统中确定它,所以我希望用户指定:
cmake -DCMAKE_TOOLCHAIN_FILE=../android.toolchain -DANDROID_ABI:STRING="arm64" ..
Run Code Online (Sandbox Code Playgroud)
在我的内心android.toolchain
,我有以下内容:
message(STATUS "Android ABI: ${ANDROID_ABI}")
if( "${ANDROID_ABI}" STREQUAL "" )
message(FATAL_ERROR "Please specifiy ABI at cmake call -DANDROID_ABI:STRING=armeabi or -DANDROID_ABI:STRING=arm64")
endif()
Run Code Online (Sandbox Code Playgroud)
无论如何,它都会在这条线上失败,即使它打印出正确的arm64:
-- Android ABI: arm64
CMake Error at yaml-cpp/android.toolchain:45 (message):
Please specifiy ABI at cmake call -DANDROID_ABI:STRING=armeabi or -DANDROID_ABI:STRING=arm64
Run Code Online (Sandbox Code Playgroud)
任何人都可以指导我做错的事吗?
我认为这与以下内容有关:
有什么想法或建议吗?
我想强迫我的空间扩大QFormLayout
,但无论什么QFormLayout
只使用QSpaceItem::sizeHint()
.有没有人知道解决这个问题的方法,或者处理这个问题的正确方法?
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
SetupLayout();
}
void MyWidget::SetupLayout()
{
QFormLayout * layout = new QFormLayout();
layout->addRow("Something1", new QComboBox());
layout->addRow("Something2", new QSpinBox());
//Spacer
layout->addItem(new QSpacerItem(0,10, QSizePolicy::Expanding, QSizePolicy::Expanding));
layout->addRow(QPushButton("Something3"));
setLayout(layout);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试学习OpenCV,并且是一个硬头,我试图运行以下算法:
cv::Mat cur_features;
cv::goodFeaturesToTrack(current_image, cur_features, 400, 0.01, 0.01);
Run Code Online (Sandbox Code Playgroud)
现在,作为头脑冷静的人,我有兴趣看看cur_features正在举办什么......我期待400x2 cv :: Mat但我得到的是400x1 cv :: Mat
没什么大不了的,我想也许它是一个直接索引.但是,对于我的生活,我无法从cur_features.at(0)中提取值并将其打印出来.
我究竟做错了什么?我见过goodFeaturesToTrack_Demo.cpp.关于该演示的一些注意事项与我的不同.给出了以下示例,我尝试了以下调用:
std::cout << cur_features.size() << std::endl; // This throws a compile time error even though its in the example
std::cout << cur_features.at<Point2f>(0).x << std::endl; //This throws a run time error.
Run Code Online (Sandbox Code Playgroud)
任何人都可以指导我一些解释如何实现目标的文档吗?goodFeaturesToTrack告诉你它返回一个OutputArray,它是一个角的向量,但它没有描述这些角的类型.如果我用其他方法得到它,我会在文档中寻找这个答案吗?
编辑: 另外,最重要的是Mat :: type().我找不到可以解释返回值的位置...我正在寻找文档中的枚举,但无法找到它.
std::cout << current_image.type() << std::endl; //This returns 0
std::cout << cur_features.type() << std::endl; //This returns 13
Run Code Online (Sandbox Code Playgroud) 总之,我保持QGridLayout
的QLabels
,其表现出多项式的系数.我代表我的多项式使用QList<double>
.
每次更新系数时,我都会更新标签.当改变列表的大小,我的方法没有效果很好. QGridLayout::rowCount()
没有正确更新.我想知道是否有办法从QGridLayout中删除行.
代码如下,QGridLayout
用更多(或更少)更新大小QLabels
int count = coefficients->count(); //coefficients is a QList<double> *
if(count != (m_informational->rowCount() - 1)) //m_information is a QGridLayout
{
SetFitMethod(0);
for(int i = 0; i < count; ++i)
{
QLabel * new_coeff = new QLabel(this);
new_coeff->setAlignment(Qt::AlignRight);
m_informational->addWidget(new_coeff, i+1, 0);
QLabel * param = new QLabel(this);
param->setAlignment(Qt::AlignLeft);
param->setText(QString("<b><i>x</i><sup>%2</sup></b>").arg(count-i-1));
m_informational->addWidget(param, i+1, 1);
QSpacerItem * space = new QSpacerItem(0,0,QSizePolicy::Expanding);
m_informational->addItem(space, i+1, 1);
}
m_informational->setColumnStretch(0, 3);
m_informational->setColumnStretch(1, 1); …
Run Code Online (Sandbox Code Playgroud) 我的多线程应用程序在调用PyImport_ImportModule("my_module")
.
BT 将发布在底部。
一些背景:
Run()
函数,该函数使用虚拟方法来确定要执行的操作。Grasp_Behavior
)中的(类)grasp_behavior
PyImport_ImportModule
我的想法是,也许我不能在同一个解释器中两次导入模块。但我不知道如何检查它。我想我需要看看是否grasp_behavior
在字典中,但我不知道是哪一个,也许我得到了__main__
模块的字典?
但我可能是错的,任何建议都会非常有帮助!
在构造函数中:
//Check if Python is Initialized, otherwise initialize it
if(!Py_IsInitialized())
{
std::cout << "[GraspBehavior] InitPython: Initializing the Python Interpreter" << std::endl;
Py_Initialize();
PyEval_InitThreads(); //Initialize Python thread ability
PyEval_ReleaseLock(); //Release the implicit lock on the Python GIL
}
// --- Handle Imports ----
PyObject * pModule = PyImport_ImportModule("grasp_behavior"); …
Run Code Online (Sandbox Code Playgroud)