- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个 C 应用程序,我正在尝试为 Mac OS X 10.6.4 编译:
$ uname -v
Darwin Kernel Version 10.4.0: Fri Apr 23 18:28:53 PDT 2010; root:xnu-1504.7.4~1/RELEASE_I386
我的gcc
如下:
$ gcc --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
我的Makefile
如下:
CC=gcc
CFLAGS=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -O3 -Wformat -Wall -pedantic -std=gnu99
all: myApp
rm -rf *~
myApp: myApp.o
${CC} ${CFLAGS} myApp.o -lbz2 -o myApp
rm -rf *~
clean:
rm -rf *.o myApp
问题是我的应用程序调用了 fseeko64
和 fopen64
,并使用 off64_t
类型作为偏移量。当我编译我的应用程序时,我收到以下警告和错误:
$ make myApp
gcc -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -O3 -Wformat -Wall -pedantic -std=gnu99 -c -o myApp.o myApp.c
myApp.c: In function ‘extractData’:
myApp.c:119: warning: implicit declaration of function ‘fseeko64’
myApp.c:119: error: ‘off64_t’ undeclared (first use in this function)
myApp.c:119: error: (Each undeclared identifier is reported only once
myApp.c:119: error: for each function it appears in.)
myApp.c: In function ‘extractMetadata’:
myApp.c:305: warning: implicit declaration of function ‘fopen64’
myApp.c:305: warning: assignment makes pointer from integer without a cast
我的代码在 Linux 下构建时没有错误。在 Darwin 下构建时,我可以对源代码进行哪些更改以添加大文件支持?
最佳答案
在 Darwin 上,文件 I/O 默认是 64 位的(至少 10.5),只是通过在/usr/include 中 grepping 发现的:
sys/_types.h:typedef __int64_t __darwin_off_t;
unistd.h:typedef __darwin_off_t off_t;
所以你需要做的就是像
#ifdef __APPLE__
# define off64_t off_t
# define fopen64 fopen
...
#endif
关于c - 如何在 Darwin 下启用大文件支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4003479/
突然出现这个奇怪的错误。不确定 Xcode 是否已损坏。任何人都知道如何在 Xcode 中修复此错误。 代码是干净的,确保它在其他机器上工作正常,Xcode 设置或某些配置存在一些问题。 'time.
自从在 Xcode 9(以前的 8.2)中打开我的项目以来,几个静态库和框架目标无法编译并出现大量错误。这个循环依赖错误总是在顶部。 一个例子是 libzip 的静态库目标。问题源于系统 zlib 库
问题概述 我正在尝试学习如何构建交叉编译器,特别是在面向 i386-apple- 的 64 位 Intel OS X 主机上构建 GNU gcc 4.7.2 版本darwin(32 位英特尔)。但是,
我刚刚将我的 OS X 从 10.10.5 升级到了 OS X El Capitan 10.11。 我试图将我的 mac 端口更新到版本 2.3.3 ... Mac 端口收到此错误: $ sudo p
这段代码在快速访问 C 中的时间和日期函数时有什么问题?即使 difftime 函数在时差上是正确的,它给我的日期也有 3 天的偏差。 import Darwin var time1 = t
FOREWORD: This question is in regards to essential manpages that have seemingly disappeared from the
我正在尝试了解如何在 Mac 上重新映射内存映射文件(当我想扩展可用空间时)。 我看到我们在 Linux 世界的 friend 有 mremap 但我在我的 Mac 上的标题中找不到这样的功能。 /D
我是 nix 世界的新手,我使用 Mac OS X。我刚刚在我的 MacBook 上安装了 nix,并想使用 nix 来管理一些软件包,例如 Emacs 而不是 Homebrew。 我找到了这个仓库:
我需要测量 darwin 上各个线程的 cpu 使用率。在 linux 上我使用 getrusage(RUSAGE_THREAD, ...) 但它在 darwin 上不可用。 最佳答案 getrusa
我有一个用 C++ 编写的服务器,它在 osx 上运行时会泄漏 Mach 端口。具体来说,运行时 top我注意到它有大约 50000(在 #PORTS 下)。奇怪的是,我让它运行了一夜,第二天机器基本
当我尝试 swift package generate-xcodeproj 我得到 - :0: error: cannot load underlying module for 'Darwin' Ca
应用程序配置为在后台接收位置更新,以保持应用程序处于事件状态,并且当应用程序在后台时成功接收更新。 Darwin 通知也已配置,仅当该应用程序是前台的当前应用程序时才会收到通知。一旦应用程序进入后台,
在 Linux 上,sched.h 包含的定义 int sched_rr_get_interval(pid_t pid, struct timespec * tp); 获取进程的时间片。然而,OS X
我最近向应用商店提交了一个新的二进制文件并将其送去审核,但立即被拒绝并显示以下消息。 “不支持的操作 - 不允许应用程序收听设备锁定通知。”。经过一番深入研究后,我发现我们无法使用“com.apple
我对 Linux 还是个新手。 我在 Linux 环境中构建了一个应用程序,它使用基于 cgo ( https://github.com/mattn/go-gtk/) 的 gtk 库。该应用程序在其
我有一个 C 应用程序,我正在尝试为 Mac OS X 10.6.4 编译: $ uname -v Darwin Kernel Version 10.4.0: Fri Apr 23 18:28:53
我正在制作一个流媒体服务器,以在我的移动设备上查看我的网络摄像头的实时视频源。 我考虑使用 ffmpeg 、 VLC 和 DSS 并进行了以下设置,尽管跳过了帧:- video4linux2 > ff
我正在寻找移动视频流服务器,并找到 dss 和 mfpeg 服务器。 有人知道 dss 和 ffmpeg 服务器之间的区别吗?推荐哪一个? 谢谢你 最佳答案 如果您需要具有大量社区覆盖的服务器,请使用
不久前,我记得读过一篇杂志文章(我相信是《连线》),内容是将达尔文进化论应用于程序以创建更好的程序。基本上会产生一个程序的多个突变,并且将选择表现最好的一个进行下一轮突变。 不幸的是,我无法让这个主题
我有 vmware 工作站 14 pro 和 macOS Unlocker 3, 当我运行解锁器时,出现此错误: main() File "gettools.py", line 91, i
我是一名优秀的程序员,十分优秀!