我正在尝试编译一些代码,这些代码使用在名为 staticlib.a 的静态库中实现的函数。我还有名为 staticlib.h 的头文件,其中包含该函数的声明。我的 main,包含在 main.c 文件中,其中包括 staticlib.h,只调用该函数而不调用其他函数。所以我用 gcc main.c staticlib.a 编译,一切正常。我需要 c++ 的一些特性,但如果我在 main.cpp 中正确更改 main.c 并以相同的方式编译 gcc main.cpp staticlib.a,则会发生对我的函数的未定义引用。我怎样才能使它起作用?为什么会出现这个问题?在我访问过的任何网站中,我都找不到真正的解释……谢谢您的所有回答。