你好 stackoverflow 社区。我一直在尝试自学 C 中的静态库和动态库。不过我遇到了一个问题。我的链接似乎根本不起作用。我做了一个简单的测试静态库。这是 .c 文件的代码:
#include <stdio.h>
void test(char * c)
{
printf(c);
}
和 .h 文件:
#ifndef TEST_H
#define TEST_H
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
extern void test(char * c);
#endif /* TEST_H */
以下是我为产生问题所采取的步骤。
首先,我使用 NetBeans 构建这个静态库项目,它生成一个 .a 库(我使用 MinGW 进行编译)。
然后,我将 .a 文件以及库的 .h 文件复制到一个文件夹中。
然后我在 NetBeans 中启动一个新的 C/C++ 应用程序项目。我右键单击该项目,然后单击属性。然后转到“构建”选项卡,然后转到“链接器”选项卡。这是我遇到麻烦的部分。无论我链接什么,NetBeans 都好像我没有链接任何东西一样。我试过链接“附加图书馆目录”和“图书馆”。都没有工作。我什至尝试通过右键单击项目手动重新解析文件,转到代码帮助菜单选项,然后单击重新解析项目。
如果您能帮助找出问题所在,我们将不胜感激,谢谢。
最佳答案
看来我忘记链接build下的library目录了。为此,我转到项目属性、Build 选项卡和 C Compiler 选项卡,然后转到 General,并将我的库目录添加到“Include Directories and Headers”。
关于C 静态库与 NetBeans 的链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20602738/