我是C语言的Python初学者。现在,我计划在上使用Python +C库(Ctype)实现一个跨平台项目,我已经准备好了win32.dll、win64.dll、mac_osx.so linux.so文件。
如何通过单个Python (.py)文件加载它们?
我的想法是使用Python或平台模块来检查环境,就像这样(抱歉,这不是真正的Python程序):
if Windows and X86 then load win32.dll
else if Windows and X64 then load win64.dll
else if OSX then load osx.so
el
我正在做一个java项目,其中我使用了mediainfo库。我的带有midiainfo.dll的JNA代码在windows中运行得很好,但当我在linux中运行我的代码时,它不能工作,并给出以下异常-
java.lang.UnsatisfiedLinkError: Unable to load library 'MediaInfo': libMediaInfo.so: cannot open shared object file: No such file or directory
我把我的jave代码写成这样-
interface MediaInfoDLL_Internal
我正在尝试用一组代码构建一个共享库,除了Makefile的这个问题之外,一切都正常。到目前为止,我的(简化的) Makefile如下:
OBJS = bar.o
libfoo.so: OS = LINUX # These don't seem to happen
libfoo.dll: OS = WINDOWS
# Linux
ifeq ($(OS), LINUX)
CC = gcc
...
# Windows
else ifeq ($(OS), WINDOWS)
CC = i686-pc-mingw32-gcc
...
endif
all: libfoo
我对Linux操作系统没有多少经验。
我设法使用Python中的ctype来访问文件中的函数,使用以下代码:
import ctypes
dpfjDll = ctypes.CDLL("dpfj.dll")
.....
调用函数的测试在我的windows机器上非常有效,但是当我将应用程序部署到我们的linux服务器时,我得到了以下错误:
OSError: dpfj.dll: cannot open shared object file: No such file or directory
知道怎么回事吗?
更新:我尝试测试来临时设置文件的绝对路径,现在我收到了以下错误消息:
OS
您好,我正在使用以便能够使用外部.dll(我没有头文件,但我有文档,因此公开了函数签名)。
我已经成功地在之后的java项目中使用了我的dll,现在我正尝试在android应用程序上使用同样的东西。
我在libs中添加了jna jar,并在buildpath中添加了jar,但得到了一个错误
The library 'jna-3.5.1.jar' contains native libraries that will not run on the device.
The following libraries were found:
com/sun/jna/linux-amd64
下载boost 1.66,解压缩,启动引导程序:
Bootstrapping is done. To build, run:
./b2
b2报告:
...blablabla..
- zlib : yes (cached)
- bzip2 : yes (cached)
...blablabla..
The following directory should be added to linker library paths:
/home/steve/boost_1_66_0/stage/lib
...b