繁体   English   中英

在命令行中从C源代码创建.dylib

[英]Creating .dylib from C Source Code At the Command Line

语境:

我已经下载了“Discount”的源代码,这是一个简单的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,但这似乎并没有发生在我身上。

底线:

一旦我下载了折扣源代码,我需要在命令行上做什么才能在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

您可以在运行configure脚本之后和构建之前将其应用于树,它应该可以解决。 如果你只想要简单的部分,运行:

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 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM