gpt4 book ai didi

objective-c - 在命令行从 C 源代码创建 .dylib

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:31 25 4
gpt4 key购买 nike

上下文:

我已经下载了“折扣”的源代码,这是一个简单的 C 程序。代码在线:http://www.pell.portland.or.us/~orc/Code/discount/

我需要什么:

我想将此代码转换为一个 .dylib 文件,然后我可以将其与我的 Cocoa 应用程序捆绑在一起。一旦我有了 dylib 文件,我就没事了。我正在苦苦挣扎的是如何首先创建 dylib 文件。

在你对我大吼大叫之前,是的,我已经用谷歌搜索了我的屁股。但是我无法找到一个直接的解释来说明我需要在命令行上做什么才能将这个 C 源文件集合编译成 .dylib。我遇到的一切都是令人费解的,或者谈论在 Xcode 中构建 dylib 项目,或者是过时的。 (我找到了一些关于使用 GCC 执行此操作的引用资料,但我想使用 LLVM。)

制作安装

据我所知,运行典型的“make install”应该会将 .dylib 文件放入/usr/lib,但这对我来说似乎并没有发生。

底线:

下载 Discount 源代码后,我需要在命令行执行什么操作才能在 OS X 10.8.2 上创建 .dylib 文件?谢谢。

最佳答案

默认情况下,该项目不会在 Mac OS X 上创建动态库。我对似乎有效的 makefile 进行了快速修补:

From a3d6793c5f291d253b8e7aa99e5534503808c325 Mon Sep 17 00:00:00 2001
From: Carl Norum <carl@norum.ca>
Date: Thu, 31 Jan 2013 16:59:24 -0800
Subject: [PATCH] Patch to generate a dynamic library.

---
Makefile | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 8532e70..11805dd 100644
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,7 @@ install: $(PGMS) $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(INCDIR)
/usr/bin/install -s -m 755 $(PGMS) $(DESTDIR)$(BINDIR)
./librarian.sh install libmarkdown VERSION $(DESTDIR)$(LIBDIR)
/usr/bin/install -m 444 mkdio.h $(DESTDIR)$(INCDIR)
+ /usr/bin/install -m 755 $(MKDLIB).dylib $(DESTDIR)$(LIBDIR)

install.everything: install install.samples install.man

@@ -82,7 +83,7 @@ theme: theme.o $(MKDLIB) mkdio.h
mkd2html: mkd2html.o $(MKDLIB) mkdio.h
$(CC) $(LFLAGS) -o mkd2html mkd2html.o -lmarkdown

-markdown: main.o pgm_options.o $(MKDLIB)
+markdown: main.o pgm_options.o $(MKDLIB) $(MKDLIB).dylib
$(CC) $(LFLAGS) -o markdown main.o pgm_options.o -lmarkdown

makepage: makepage.c pgm_options.o $(MKDLIB) mkdio.h
@@ -94,6 +95,9 @@ pgm_options.o: pgm_options.c mkdio.h config.h
main.o: main.c mkdio.h config.h
$(CC) -I. -c main.c

+$(MKDLIB).dylib: $(OBJS)
+ $(CC) -dynamiclib -o $(MKDLIB).dylib $(OBJS)
+
$(MKDLIB): $(OBJS)
./librarian.sh make $(MKDLIB) VERSION $(OBJS)

--
1.7.12.1

您可以在运行配置脚本之后和构建之前将其应用于您的树,它应该会成功。如果您只想要简单的部分,请运行:

cc -Wno-implicit-int -I. -dynamiclib -o libmarkdown.dylib mkdio.o markdown.o dumptree.o generate.o resource.o docheader.o version.o toc.o css.o xml.o Csio.o xmlpage.o basename.o emmatch.o github_flavoured.o setup.o tags.o html5.o flags.o 

在构建常规包后在命令行上应该会为您生成动态库。然后您可以自己安装它。

关于objective-c - 在命令行从 C 源代码创建 .dylib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14637732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com