假设我有一个使用编译器A编译的库。它使用
我可以使用编译器B编译使用该库的程序吗?或者我需要担心一个编译器的(标准库的)
除了一般性问题外,我还想知道这些编译器的具体答案:在OS X上使用MacPorts的gcc 4.9或5的系统clang。
malloc()
来分配内存,并让我使用free()
来释放内存。它没有提供任何特殊的释放函数。我可以使用编译器B编译使用该库的程序吗?或者我需要担心一个编译器的(标准库的)
malloc
与另一个编译器的free
不兼容吗?除了一般性问题外,我还想知道这些编译器的具体答案:在OS X上使用MacPorts的gcc 4.9或5的系统clang。
malloc
和free
由libc.dylib提供,该库随操作系统一起提供而不是编译器。如果编译C ++,甚至可以在同一个可执行文件中混合使用clang的libc ++和GNU libstdc ++。此外,请注意,如果您安装了Xcode命令行工具选项,则从命令行调用gcc
实际上会给您提供clang
,在绝大多数情况下,这不是问题。 - markoX == (所有时间) - (多数情况下的时间)
。 - ryyker