如何在静态库项目中添加 main 方法?

Posted

技术标签:

【中文标题】如何在静态库项目中添加 main 方法?【英文标题】:How to add a main method to a static library project? 【发布时间】:2013-02-14 17:40:40 【问题描述】:

我在 XCode 中有一个构建静态库的 C++ 项目。我想在项目中添加一个 main 方法,以允许我测试库中的一些代码。

为了做到这一点,我首先复制了项目的目标,然后向第二个目标添加了一个 main 方法(根据this answer)。但是,当我构建并运行这个新目标时,我的 main 方法没有执行。

有人知道我做错了什么吗?

【问题讨论】:

这毫无意义。您想向静态库添加方法吗?还是要测试库? 我想测试部分库。这是我要添加主要方法的唯一原因。这是一个疯狂的想法吗?我应该考虑使用某种测试框架或其他东西吗? (我是 C++ 和 XCode 的新手。) 您为什么不创建一个链接到您的图书馆的应用程序?您可以将 main 添加到库中,但它仍然无法执行.. 它只是一个库。现在你明白为什么它没有意义了吗?将 main 添加到库中不会让您对其进行测试,因此您尝试做的两件事是完全独立的。 我明白了。谢谢!当我在 Java 中工作时,我有时会向一个类添加一个(临时)main 方法,作为测试其行为的一种快速、非正式的方式。我想这不是在 C++ 中完成的。感谢您的帮助。 @dB' 我也有同样的问题。我想使用一小段代码来快速了解一个庞大的库。在 java 中,您可以逐行添加 main 和 debug 并快速理解很多事情。下面的答案对这种情况并没有真正的帮助。 【参考方案1】:

测试库的典型方法是编写一段单独的代码来测试库,并将结果与​​预期结果进行比较。

在这种情况下,main 将进入测试程序,而不是库。在库中拥有main 是不正确的,如果用户忘记提供main,将会给库用户带来非常奇怪的问题...

【讨论】:

以上是关于如何在静态库项目中添加 main 方法?的主要内容,如果未能解决你的问题,请参考以下文章

将静态库添加到 C 或 C++ 项目的常用方法是啥?

我有一个Xcode静态库项目,如何添加测试目标,以便我可以在那里运行它? (而不是在链接到它的项目中。)

Xcode如何添加静态库?

介子找不到静态库

Xcode 4:如何将静态库目标依赖添加到项目中

怎样添加预编译静态库 libwebrtc