小编brn*_*uro的帖子

VS2010中的"重定义;不同类型修饰符"

我正在尝试编译我在visual studio中下载的一些代码.该代码适用于msvc 6,我将其导入VS2010.该代码用于通过编译DLL为labview提供ASIO支持.看到这里整个代码.

构建时出现以下错误:"错误C2373:'_ pctype':重定义;不同的类型修饰符."

代码段如下:

unsigned short _Ints[ 512 ];
unsigned short *_pctype = _Ints;

如果有人将从我提供的链接引用代码包,则来自文件GenMonCIN.c

c++ visual-c++ asio

4
推荐指数
1
解决办法
1万
查看次数

python和ctypes cdll,没有得到预期的函数返回

我正在研究连接触觉机器人和眼动仪的过程.因此,两者都有自己的编程要求,即眼动仪软件基于python,是我编程的主要语言.我们的触觉机器人在C中有一个API,所以我必须在C中编写一个包装器,将其编译为DLL,并在python中使用ctypes来加载这些函数.

我用MATLAB测试了我的DLL,一切正常.但是,当我查询机器人的位置坐标时,我在python类中实现ctypes的一些事情并没有给我预期的返回值.

我将在这里发布代码,并在底部更清楚地解释问题.

DLL包装器的C源代码:

#include <QHHeadersGLUT.h>
using namespace std;
class myHapClass{
public:
void InitOmni()
{
    DeviceSpace* Omni = new DeviceSpace; //Find a the default phantom
}
double GetCoord(int index)
{
    HDdouble hapPos[3];
    hdGetDoublev(HD_CURRENT_POSITION,hapPos);
    return hapPos[index];
}
};

extern "C" {
int index = 1;
__declspec(dllexport) myHapClass* myHap_new(){ return new myHapClass();}
__declspec(dllexport) void myHapInit(myHapClass* myHapObj){ myHapObj->InitOmni();}
__declspec(dllexport) double myHapCoord(myHapClass* myHapObj){ double nowCoord = myHapObj->GetCoord(index); return nowCoord;}
}
Run Code Online (Sandbox Code Playgroud)

这段代码的理论只是让3个可用的C(而不是C++)调用与python/ctypes兼容:

  1. myHap_new()返回指向该类实例的指针
  2. myHapInit初始化触觉设备
  3. myHapCoord返回int index引用的轴的当前位置的double.

python类如下:

import sreb
from ctypes import cdll
lib = …
Run Code Online (Sandbox Code Playgroud)

python robotics ctypes

3
推荐指数
1
解决办法
2263
查看次数

mysql和matlab mex - libmysqlcppconn没有找到glibcxx_3.4.15

我正在运行ubuntu 12.04和matlab R2012a.

不确定问题到底是什么,但我可以很好地构建我的mex文件.但是当它运行时我收到此错误

Invalid MEX-file '/home/br/Documents/MATLAB/langmod/rss2mysql/mexUrl2dbSrc.mexa64':/usr/local/MATLAB/R2012a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/local/lib/libmysqlcppconn.so.5)
Run Code Online (Sandbox Code Playgroud)

我发现特别奇怪,因为如果我在终端中运行以下内容

strings /usr/local/MATLAB/R2012a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6 | grep GLIBC
Run Code Online (Sandbox Code Playgroud)

我知道了:

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?任何帮助,将不胜感激.

谢谢,Brian

c++ matlab shared-libraries mex mysql-connector

3
推荐指数
1
解决办法
2015
查看次数