小编Fan*_*eng的帖子

链接器错误:使用外部变量的函数模板中的未定义引用

我有一个包含两个文件的小项目:

主程序

#include <string>
template<int I>
int getint(int i)
{
    extern std::string var;
    return var.size() * i;
}

int main()
{
    return getint<2>(2);
}
Run Code Online (Sandbox Code Playgroud)

和子.cpp

#include <string>
extern std::string var;
std::string var = "Hello";
Run Code Online (Sandbox Code Playgroud)

但是当我编译项目时,链接器给出了错误:

-------------- Clean: Debug in test (compiler: GNU GCC Compiler)---------------

Cleaned "test - Debug"

-------------- Build: Debug in test (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -fexceptions -g  -c C:\Users\Fan\Downloads\test\test\main.cpp -o obj\Debug\main.o
mingw32-g++.exe -Wall -fexceptions -g  -c C:\Users\Fan\Downloads\test\test\sub.cpp -o obj\Debug\sub.o
mingw32-g++.exe  -o bin\Debug\test.exe obj\Debug\main.o obj\Debug\sub.o   
obj\Debug\main.o: In …
Run Code Online (Sandbox Code Playgroud)

c++ linker-errors unresolved-external function-templates

7
推荐指数
0
解决办法
185
查看次数