【问题标题】:What are defines on different platforms (windows, mac, linux) that can tell your code that is it part of an application, not a library?在不同的平台(windows、mac、linux)上定义了什么可以告诉你的代码它是应用程序的一部分,而不是库的一部分?
【发布时间】:2011-10-22 12:57:14
【问题描述】:

所以我想知道可以包含在不同项目中的代码如何确定它是否包含在应用程序库中? (在 Linux、Mac 和 Windows 上)

【问题讨论】:

  • 无 - AFAIK - 为什么你的代码关心?
  • 所以你想要一些#define 来告诉你代码是被编译成可执行文件还是被编译成库?为什么?
  • 我想这样定义例如解决this=)

标签: c++ cross-platform c-preprocessor


【解决方案1】:

简单的答案是它不能。决定是否为目标文件 (由编译器生成)是库的一部分或 应用程序直到链接时间才创建(并且不是库的一部分 应用程序?)。

【讨论】:

  • 嗯...共享库可以即时连接到您的应用程序,因此它们比应用程序的实际部分更多是插件...
  • @Kabumbus 有些是,有些不是;共享库的一种可能用途是能够即时更新您的应用程序。但真正的问题很简单:同一个目标文件可以链接一次到应用程序中,另一次链接到共享库中。所以任何测试都必须在运行时进行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-01
  • 1970-01-01
相关资源
最近更新 更多