标签: dylib

制作一个64位共享库,动态链接到Mac OS X Snow Leopard上的32位库

更新:经过多次阅读后我发现这个问题非常普遍,你不能在同一个进程中混合架构,所以64位Java不能dlopen()像FMOD这样的32位库.有没有可能的解决方法,请记住我正在编写自己的FM接口到FMOD库?

我需要在Max OS X上制作64位dylib,因为Java Native Access只喜欢64位机器上的64位库.问题是,我的C源代码动态地包含FMOD,它在Mac上只提供32位dylib.当我尝试编译时没有-m32选项(因为我必须输出64位dylib)我得到以下错误:

    gcc -dynamiclib -std=c99 -pedantic -Wall -O3 -fPIC -pthread -o  ../bin/libpenntotalrecall_fmod.dylib ../../src/libpenntotalrecall_fmod.c -lfmodex -L../../lib/osx/

    ld: warning: in /usr/lib/libfmodex.dylib, missing required architecture x86_64 in file
    Undefined symbols:
      "_FMOD_System_CreateSound", referenced from:
          _startPlayback in ccJnlwrd.o
      "_FMOD_Channel_GetPosition", referenced from:
          _streamPosition in ccJnlwrd.o
      "_FMOD_System_Create", referenced from:
          _startPlayback in ccJnlwrd.o
      "_FMOD_System_PlaySound", referenced from:
          _startPlayback in ccJnlwrd.o
      "_FMOD_Sound_Release", referenced from:
          _stopPlayback in ccJnlwrd.o
      "_FMOD_Channel_IsPlaying", referenced from:
          _playbackInProgress in ccJnlwrd.o
      "_FMOD_System_Update", referenced from:
          _streamPosition in ccJnlwrd.o
          _startPlayback in ccJnlwrd.o …
Run Code Online (Sandbox Code Playgroud)

c macos 64-bit shared-libraries dylib

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

如何使用XCode 4.3.2为iOS构建动态库

我正在尝试为iOS 5构建一个动态库,但是没有这个模板.你能帮我吗?

iphone makefile dylib ios xcode4.3

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

使用动态库(dll/dylib)进行内存管理

在应用程序中分配内存并在从dll/dylib调用的函数中释放它是否有任何问题?

但是要从dll/dylib中为函数分配内存并在调用者应用程序中释放它?

c++ dll memory-management dylib

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

如何在Xcode中设置dyld_library_path

我是Xcode和Mac环境的新手.我正在使用一些动态和静态库,如boost,Clucene等.我有所有的库

MyApp.app/Contents/Resources

我想将此路径设置为应用程序的dyld_library_path.我试过像编辑XXX.plist文件一样

DYLD_LIBRARY_PATH/mypath/xxx

并在Xcode中设置环境变量和参数无效.

但如果我运行如下所示的shell脚本而不双击我的.dmg中的应用程序就行了

#!/bin/bash
clear
cd /Volumes/xxx/myapp.app/Contents/MacOS
export DYLD_LIBRARY_PATH="/Volumes/xxx/myapp.app/Contents/Resources"
./myapp
Run Code Online (Sandbox Code Playgroud)

我确信这不是正确的方法.每次执行我的应用程序时是否有正确的方法来设置dyld_library_path?

编辑:它也有效,如果你mannualy复制所有你的库到客户端/ usr/lib路径...我想这也不是一个正确的方法来做到这一点.

macos xcode dylib dyld xcode4

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

如何阻止Scons在共享库的前面添加lib

我一直在玩OSX上的Scons,我正在尝试创建一个共享库(.dll,.so,.dylib).

这一切都完美无缺,除了一件让我烦恼的事情,它在图书馆名称前添加了"lib".例如,我选择名称WL,它变成libWL.dylib.我无法弄清楚为什么Scons这样做,这让我很生气.

在此输入图像描述

我使用的代码是:

# -*- coding: utf-8 -*-
import os
SourceList = ['Window.cpp']
env = Environment(ENV = os.environ)

#Libraries we are using
Targets = 'WL'
libraries = ['SDL2']

#Paths to the libraries and include paths
Paths = ['/usr/local/lib', '/usr/local/include']

Export('SourceList env libraries Paths Targets')
SConscript('src/SConscript', variant_dir='bin', duplicate=0)
Run Code Online (Sandbox Code Playgroud)

Import('SourceList env libraries Paths Targets')
SharedLibrary(target = Targets,source = SourceList,LIBS = libraries, LIBPATH=Paths)
Run Code Online (Sandbox Code Playgroud)

我不太了解共享库的工作方式,所以我不知道在编译后是否可以更改名称.但我希望它不要添加字母

c++ macos dll dylib scons

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

Matplotlib错误:libfreetype.6.dylib

我正在尝试运行以下python脚本(我正在使用Vim):

import numpy as np;
import scipy as sp;
from scipy import misc;
import matplotlib.pyplot as plt;
image = misc.imread('test_image.jpg');
np.fliplr(image);
plt.imshow(image);
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到以下内容:

Traceback (most recent call last):
  File "test.py", line 4, in <module>
    import matplotlib.pyplot as plt;
  File "/Library/Python/2.7/site-packages/matplotlib/pyplot.py", line 24, in <module>
    import matplotlib.colorbar
  File "/Library/Python/2.7/site-packages/matplotlib/colorbar.py", line 29, in <module>
    import matplotlib.collections as collections
  File "/Library/Python/2.7/site-packages/matplotlib/collections.py", line 23, in <module>
    import matplotlib.backend_bases as backend_bases
  File "/Library/Python/2.7/site-packages/matplotlib/backend_bases.py", line 50, in <module>
    import matplotlib.textpath as textpath
  File "/Library/Python/2.7/site-packages/matplotlib/textpath.py", line 11, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib dylib freetype

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