2012-08-08 54 views
0

我已经创建了一个简单的本机iPhone应用程序。该项目包含用于执行一些操作的c,C++源文件。它的无线电调谐应用程序,这很好。我想给一个源代码,并且想要隐藏所有源代码c,cpp文件(因为陌生人不想看到我的代码)。所以我做的是,我编译了iPhone应用程序并从构建路径收集所有(.o)文件并添加到我的资源文件夹中。如何编译iPhone应用程序中添加的对象(* .o)文件?

例如,如果我的应用程序中有这两个文件

 radio.c 
     radio.h 

当我建立radio.o出现在构建路径目录。我的构建路径是(/Users/Macuser/Projects/Radio//build/Radio.build/Release-iphoneos/HDRadio.build/Objects-normal/armv7/ radio.o)。

所以我复制radio.o文件并添加到我的源代码目录中,我删除了radio.c和radio.h文件。当我编译它给出了一个错误,radio.h文件未找到。

这里有什么问题?请告诉我。在此先感谢..

注意: 当我将radio.h文件添加到我的项目它编译成功。我不想看到我的radio.h和radio.m文件。这可能吗?

回答

0

您的项目中必须有一些其他文件正在导入或包含radio.h。您的.o文件用于链接,但编译源代码时解析了导入/包含依赖关系。 (.o文件是而不是源。)

如果您不想提供.h文件,那么解决方法是创建一个静态库来包含所有相互依赖的.o文件。 (但是,要调用库中的任何函数,该人员仍然需要使用公共函数声明.h)

+0

谢谢。所以当我们创建一个静态库时.h文件没有被查看。对。 – 2012-08-08 13:08:35

+0

静态库本身是一个.a(压缩文件)文件中包含的.o文件包。在编译时你只需要.h;一旦建立了对象,.h是不必要的**除非另一个源文件需要知道库中某个例程的定义**。 – 2012-08-08 13:11:26

+0

是的。 .h文件是我们在库中所做的唯一标识。有没有可能将这个.o文件合并成一个.o文件?什么可能是静态库的扩展? – 2012-08-08 15:49:59

相关问题