Tag: macos

“Gtk-WARNING **:C库不支持区域设置。 使用回退’C’语言环境。“在OS X上

背景资料: 我使用的是Mac OSX Yosemite。 我使用brew install gtk+并使用export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig修复了错误。 我使用make构建我的程序但是当我尝试运行它时,我得到一个像这样的警告: (process:16182): Gtk-WARNING **: Locale not supported by C library. Using the fallback ‘C’ locale. 问题:我找不到针对此特定问题的OS X的任何解决方案。 到目前为止我学到了什么: 在这个线程中( Gtk-WARNING **:C库不支持Locale。虽然使用了几个Python模块(mayavi,spectrum) ),他们建议使用: ipython –pylab=wx而不是ipython –pylab=osx 但我不知道python如何与我的问题相关(我的程序是用C语言编写的 – 同样适用于gtk+我猜) 你可以在这个问题上找到很multithreading,如下所示:( Gtk-WARNING **:C库不支持Locale。从命令行启动应用程序时 )但它们主要是指Linux和/或Ubuntu。 大多数答案迟早会使用这样的命令: sudo dpkg-reconfigure locales 但OS X上没有dpkg 。

Python将32位指针地址传递给C函数

我想在Python脚本的共享库中调用我的C函数。 传递指针时出现问题,64位地址似乎被截断为被调用函数内的32位地址。 Python和我的库都是64位。 下面的示例代码演示了该问题。 Python脚本打印传递给C函数的数据的地址。 然后,从被调用的C函数内打印接收的地址。 此外,C函数通过打印本地创建内存的大小和地址来certificate它是64位。 如果以任何其他方式使用指针,则结果是段错误。 的CMakeLists.txt cmake_minimum_required (VERSION 2.6) add_library(plate MODULE plate.c) plate.c #include #include void plate(float *in, float *out, int cnt) { void *ptr = malloc(1024); fprintf(stderr, “passed address: %p\n”, in); fprintf(stderr, “local pointer size: %lu\n local pointer address: %p\n”, sizeof(void *), ptr); free(ptr); } test_plate.py import numpy import scipy import […]

OpenSSL和Apple Keychain集成

我们正在使用一个应该在Windows和Mac上运行的多平台应用程序。 我们的应用程序基于OpenSSL作为SSL和相关的供应商。 它使用客户端证书建立安全连接并识别最终用户。 我们希望使用Windows和Mac本机证书存储来确保最大的安全性。 Openssl有一个与Windows证书存储(CAPI引擎)交互的引擎。 但是,我们没有设法为Mac的Keychain找到这样的解决方案。 OpenSSL和Apple的Keychain之间是否有集成? 如果没有,你的建议是什么?

如何从目标文件中读取Mach-O头?

我花了几天时间试验assembly,现在了解assembly和机器代码之间的关系(在OSX上通过NASM使用x86,阅读英特尔文档 )。 现在我试图理解链接器如何工作的细节,特别是想要了解Mach-O目标文件的结构,从Mach-O头开始。 我的问题是,你能否将下面的Mach-O标头映射到otool命令输出(显示标题,但它们的格式不同)? 这个问题的一些原因包括: 它将帮助我看到“Mach-O头的结构”上的文档如何在真实世界的目标文件中查看。 它将简化理解的路径,因此我和其他新人不必花费很多时间或几天想知道“他们是指这个还是这个 ”类型的东西。 如果没有以前的经验,很难将一般的Mach-O文档精神翻译成现实世界中的实际目标文件。 下面我展示了我尝试从真实对象文件解码Mach-O头的示例和过程。 在下面的描述中,我试图显示出现的所有小/微问题的提示。 希望这将提供一种对新手如此混淆的感觉。 例 从名为example.c的基本C文件开始: #include int main() { printf(“hello world”); return 0; } 用gcc example.c -o example.out编译它,它给出: cffa edfe 0700 0001 0300 0080 0200 0000 1000 0000 1005 0000 8500 2000 0000 0000 1900 0000 4800 0000 5f5f 5041 4745 5a45 524f 0000 0000 0000 […]

Valgrind在Mac OSX 10.8上显示空程序的内存泄漏

Valgrind使用brew安装。 #include #include int main() { return 0; } gcc -g -o hello hello.c valgrind –tool=memcheck –leak-check=yes ./hello

OS X:在不降低流程的情况下生成核心转储?

我知道如何在进程崩溃时在OS X上生成核心转储,但我真正需要做的是附加到进程,生成核心转储,然后恢复该进程(不会杀死它)。 很久以前(也许是一年半前)我有C代码可以做到这一点…它使用OS X内核库连接到一个进程,读取它的所有线程状态和内存,并将其写入磁盘上的Mach-O文件。 这很好用(这正是我正在寻找的),但现在我似乎无法找到我的生活代码。 我似乎记得代码与OS X系统内部书籍有些相关,但这只是一个模糊的回忆。 有谁知道我正在谈论的代码,可以指出我吗? 如果不是,是否有人知道这样做的好方法最好是一些示例代码? 编辑:这是答案。 信息: http : //osxbook.com/book/bonus/chapter8/core/ 将为您完成的计划: http : //osxbook.com/book/bonus/chapter8/core/download/gcore-1.3.tar.gz

OpenCL头包含C ++中的相对路径问题

我试图在Eclipse CTD上运行OpenCL C ++示例(在Mac上)包含OpenCL头,如下所示: #include 该文件存在于我的系统上(OpenCL sdk默认安装在Mac上)但不在OpenCL目录中(实际路径: /System/Library/Frameworks/OpenCL.framework/Versions/A/Headers ),所以如果我添加该路径作为项目属性中的包含目录并从#include语句中删除相关OpenCL目录,链接显然已解决, 但我注意到在该cl.h文件中,其他头文件使用相同的相对路径引用(例如OpenCL/cl_platform.h )但你可以从上面的路径看到这个OpenCL目录实际上并不存在,所以我想知道这个东西应该如何起作用。 我的问题: 在我上面的例子中,相对路径中的’OpenCL’目录是否应该存在于物理上的某个地方,或者它应该是某种环境变量或类似的,指向安装sdk的实际路径 ? 对不起,混乱,任何帮助表示赞赏! 注意:从khronos网站上的这篇文章来看,似乎OpenCL目录应该是物理存在的。

在Mac OS 10.6上执行简单的缓冲区溢出

我正在尝试了解堆栈基础溢出并编写一个简单的代码来利用堆栈。 但不知怎的,它根本不起作用,只显示我的机器上的Abort陷阱(mac os豹) 我想Mac os对待溢出的方式不同,它不允许我通过c代码覆盖内存。 例如, strcpy(buffer, input) // lets say char buffer[6] but input is 7 bytes 在Linux机器上,此代码成功覆盖下一个堆栈,但在mac os上阻止(Abort trap) 任何人都知道如何在mac机器上执行简单的堆栈溢出?

如何以编程方式获取OS X上给定PID的打开文件描述符列表?

我见过的所有东西都说使用lsof -p ,但我正在寻找一些不需要fork / exec的东西。 例如在Linux上,可以简单地走/proc/{pid}/fd 。

链接Xcode 7中的静态C库?

我目前正在尝试将我创建的静态C库链接到一个新的Xcode项目。 要链接它,我按照以下说明操作: 1)导航到Build Phases 2) 使用库展开链接二进制文件 3)添加了“其他”库,然后指定了相关的.a文件。 不幸的是,该项目不会编译并抛出以下错误: ld: library not found for -ltxht 我不确定该怎么做。 该库似乎在项目中作为项目文件显得正常,我找不到任何迹象表明存在任何问题。 我已经尝试在文件检查器中设置它的位置以使用绝对路径 ,但这并没有改变任何东西。 我也看到在一些类似的在线post中,以某种方式提供静态库的完整路径可能有助于解决问题: 回应你对Eduard Wirch回答的评论:如果你用-l / full / path /替换/ libhdf5.a,你也可以只为这一个库控制静态链接 从这个SOpost 。 但是,我不知道该怎么做? 我已经进入了构建设置 ,除了选项页面之外什么都没看到,但是在Headers或Linking下没有多少似乎允许我做我想要的。 谁能解释如何正确添加这个静态C库? 仅供参考,项目相对于图书馆所在地的位置如下: 库: /lib/libtxht/libtxht.a Xcode项目: /lib/libtxvm/myProject.xcodeproj