3

我有一个 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() 内联。这里有什么遗漏或有什么问题吗?

4

1 回答 1

6

The problem here is the declaration of the function as static - in C, this says that it should be available to other functions within the same compilation unit (.c file), but not to other functions outside the file. Removing static should solve the problem.

Incidentally, the second function is misspelled - it should be document_found, not docuemnt_found.

于 2011-09-23T12:52:07.940 回答