与具有静态链接的函数混淆
Confusion with functions with static linkage
我不确定以下代码:
.lib项目
单位小时
namespace mynamespace {
static void myFunction()
{
printf("hello world");
}
void myFunction2();
}
单位.cpp
#include "Unit.h"
void myFunction2() { printf("hello world"); }
.exe项目
mainapp.cpp
#include "Unit.h"
int main()
{
mynamespace::myFunction();
mynamespace::myFunction2();
return 0;
}
1) 为什么我会为myFunction2()获得"未解析的外部符号"?我包括了标题,而符号在另一个翻译单元中,怎么了?
2) static的意思应该是"具有内部链接",这是否意味着mainapp.cpp和unit.cpp都将拥有myFunction的"副本"?
您需要在命名空间中实现函数:
void mynamespace::myFunction2() { printf("hello world"); }
目前,在Unit.cpp中,您正在定义一个不同的函数;全局命名空间中名为CCD_ 1的函数。
。。。在命名空间中实现函数。。。
单位.cpp
namespace mynamespace {
void myFunction2() { printf("hello world"); }
}
相关文章:
- 内联函数中具有内部链接的全局变量
- 使用C链接在函数内部创建C++模板
- 返回一个带有 std::move 的对象并链接函数
- 无法使函数公开。获取:"LNK2005"错误。如何调试链接器错误
- 链接器错误:无法解析构造函数
- 使用自定义工具集获取动态退出析构函数链接错误 - eh 矢量析构函数
- C++复制构造函数链接堆栈
- C 将外部函数链接为成员函数
- 将静态类与友元函数链接时出现奇怪错误
- 关于C++中构造函数链接的一些问题
- 构造函数/析构函数链接错误
- 查找导致库函数链接的函数
- C++虚拟覆盖函数链接器错误
- 将错误与定义的析构函数链接
- 模板函数链接器错误LNK2019
- 使用模板的构造函数链接器错误
- Qt移动构造函数链接错误
- 内联函数链接错误C++
- c++ OpenGL——gluBuild2DMipmaps函数链接错误
- 静态空函数链接错误