clang 是否提供 unlink 实现?

Does clang provide an unlink implementation?

我正在尝试使用 clang 编译一个库。该库调用 'unlink',这不是由 clang 定义的:

libmv/src/third_party/OpenExif/src/ExifImageFileWrite.cpp:162:17: error: use of undeclared identifier 'unlink'; did you mean 'inline'?
            unlink( mTmpImageFile.c_str() ) ;

我的问题是,取消链接的 clang 等价物是什么?正如我所见,前进的道路是使用等效例程在某处#define unlink。

没有"Clang equivalent"。 GCC 和 Clang 都没有负责定义 unlink,尽管它们可能分发了 POSIX headers 定义(我不记得具体在哪里 POSIX headers 来自).

不幸的是,这似乎是您正在使用的库的错误; OpenExif 开发人员未能包含正确的 headers。不同的 C++ 实现可能在内部 #include 各种 headers 用于他们自己的目的,这显然掩盖了您以前的工具链上的这个错误。

您可以破解您的副本 and/or 提交补丁以添加:

#include <unistd.h>