Tag: macos

Mac OS X Lion上的OpenMP编译失败(memcpy和SSE内在函数)

我偶然发现了以下问题。 下面的代码片段在Mac OS X上没有与我试过的任何Xcode链接(4.4,4.5) #include #include #include int main(int argc, char *argv[]) { char *temp; #pragma omp parallel { __m128d v_a, v_ar; memcpy(temp, argv[0], 10); v_ar = _mm_shuffle_pd(v_a, v_a, _MM_SHUFFLE2 (0,1)); } } 代码仅作为示例提供,并且在运行时会出现段错误。 关键是它不能编译。 使用以下行完成编译 /Applications/Xcode.app/Contents/Developer/usr/bin/gcc test.c -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -mmacosx-version-min=10.7 -fopenmp Undefined symbols for architecture x86_64: “___builtin_ia32_shufpd”, referenced from: _main.omp_fn.0 in ccJM7RAw.o […]

如何在ac / c ++ app中列出所有环境变量

我知道用c ++编程时我可以使用getenv访问各个环境变量。 我也知道,在os x终端中,我可以使用env列出所有当前环境变量。 我有兴趣获取可运行的c ++程序可用的环境变量的完整列表。 是否有列出它们的ac / c ++函数? 换句话说,有没有办法从我的c ++代码调用env ?

从C – Bus错误10测试Shellcode

下面,我写了一个打印’Hello,World!’的x64程序集。 来自Mac OS X 10.8上的系统调用。 它独立执行时汇编并运行完美。 ; Assemble and link with: ; nasm -f macho64 -o HelloWorld.o HelloWorld.s ; ld -arch x86_64 -o HelloWorld HelloWorld.o global start section .text start: push rbp mov rbp, rsp jmp short String xor rdi, rdi mov di, 0x01 StringRet: pop rsi xor rdx, rdx mov dl, 0xE mov r8b, […]

如何在Mac OS X上以C编程方式创建稀疏文件?

我想创建一个稀疏文件,使得在我向它们写入数据之前,全零块不会占用实际的磁盘空间。 可能吗?

OS X(C)接口的MAC地址

这可能是一个愚蠢的问题,如果它已经在这里得到解决,我道歉,但我搜索了一下,没有太多运气。 我正在尝试用C语言获取接口的硬件地址,而我正在使用OS X(x86-64)。 我知道如何使用ifconfig ,但我希望我的程序能够自动获取任何计算机,至少OS X计算机。 我发现另一个post发布了这个链接 ,它几乎可以做我想要的(有一些修改),但是我不能在ld创建iokit函数链接(我的编译器是gcc )。 我尝试将标志-lIOKit和-framework IOKit到gcc命令行,但我仍然得到相同的链接错误。 这是我的代码的链接: 标题和来源 。

如何使用fork()和exec()在Mac OS上创建进程

我正在研究一个相对简单,独立的“ 流程启动器 ”,我希望能够在Windows(XP,Vista,7),Linux(Ubuntu 10.10)以及特别是Mac OS X (10.6)上工作。 Linux和Windows基本上都可以工作,但我在使用Mac版时遇到了一些麻烦。 我希望fork()和exec()函数在Mac OS下可以像在Linux中一样工作。 所以我的第一个问题是: 我应该使用它们在Mac上创建进程还是要使用任何特定于平台的function? 我目前的代码(在Linux下工作正常)来调试它看起来像这样: pid_t processId = 0; if (processId = fork()) == 0) { const char * tmpApplication = “/Path/to/TestApplication”; int argc = 1; char * argv[argc + 1]; argv[0] = tmpApplication; argv[1] = NULL; execv(tmpApplication, argv); }else { //[…] } 不知道这是否可以在Mac OS X下运行,因为我的子进程根本没有启动,而没有出现错误。 谢谢!

我真的需要libgcc吗?

我一直在Mac OS X 10.6上使用GCC 4.6.2。 我在编译时使用-static-libgcc选项,否则我的二进制文件在系统上查找libgcc并且我不确定OS X上是否支持GCC 4.2。这样可以正常工作,但为什么我甚至需要libgcc? 我读了它并且GNU文档说它包含“目标处理器不能直接执行的算术运算”。 我怎么知道这些操作是什么? 为什么它们如此复杂以至于我需要包含这个库? 为什么GCC不能直接优化代码而不必诉诸这些库函数? 我有点困惑。 对此有任何见解将不胜感激!

如何在Mac OS X上安装MySQL Connector / C?

我正在用C编写一个需要MySQL交互的应用程序,所以我从官方网站下载了Connector / C存档,它包含bin,lib和include文件夹,但我不知道在哪里安装它们。 我可以将包含文件复制到我的项目文件夹中,但是我可以在哪里放置lib文件以便我的编译二进制文件(和其他二进制文件)可以找到它? 提前致谢!

Mac OS上的混合静态和动态链接

我想使用gcc生成一个共享库,但我想链接一些静态依赖的其他库。 现在生成我使用的“标准”动态链接输出文件 gcc -dynamiclib *.o -lfoo -lbar -o outfile 这将是 gcc -shared *.o -lfoo -lbar -o outfile 在Linux系统上的binutils ld 。 现在,如果我想将libfoo和libbar静态链接,我可以直接命名静态库 gcc -dynamiclib *.o /usr/lib/libfoo.a /usr/lib/libbar.a -o outfile 但是,这样我必须自己寻找库文件。 GNU binutils ld支持这个: gcc -shared *.o -l:libfoo.a -l:libbar.a -o outfile 但是苹果公​​司没有。 有没有办法让苹果的ld自己寻找静态库? 如果没有,是否有另一种方法可以避免命名存档的确切位置,例如从需要libfoo的目标文件和带有-static开关的libbar生成中间输出文件,并将该文件与剩余的对象文件链接在一起以创建动态对象?

使用C语言在Mac OS X中获取主目录

如何在XCode编辑器中使用C语言获取Mac OS X中主目录的路径。