我有一个C动态库,由于一些需求变化,我必须进行一些重构。
我在一个c文件中有以下代码。
__attribute__((noinline))
static void *find_document(...)
{
...
}
bool docuemnt_found(const char *name) {
...
find_document(...);
...
}
我在不同的cpp文件中分离了docuemnt_found()函数。现在docuemnt_found()函数无法链接到find_document()方法?
我尝试为c文件创建标头,然后使用extern "C"
包含标头,但它不起作用。
我想保持find_document()内联。这里有什么遗漏或有什么不对吗?
答案 0 :(得分:6)
这里的问题是将函数声明为static
- 在C中,这表示它应该可用于同一编译单元(.c文件)中的其他函数,但不能用于其他函数。文件。删除static
可以解决问题。
顺便提一下,第二个函数拼写错误 - 它应该是document_found
,而不是docuemnt_found
。