在混合C C++代码时链接动态库中的问题

RLT*_*RLT 3 c c++ gcc dylib

我有一个C动态库,由于一些需求变化,我必须做一些重构.

我在一个c文件中有以下代码.

__attribute__((noinline))
static void *find_document(...)
{
  ...
}

bool docuemnt_found(const char *name) {
 ...
    find_document(...);
 ...
}
Run Code Online (Sandbox Code Playgroud)

我在不同的cpp文件中分离了docuemnt_found()函数.现在docuemnt_found()函数无法链接到find_document()方法?

我尝试为c文件创建标题然后包含标题使用extern "C"但它不起作用.

我想保持find_document()内联.这里有什么遗漏或有什么不对吗?

Jon*_*ght 6

这里的问题是函数声明为static- 在C中,这表示它应该可用于同一编译单元(.c文件)中的其他函数,但不能用于文件外的其他函数.删除static应解决问题.

顺便说一句,第二个函数拼写错误 - 它应该是document_found,而不是docuemnt_found.