Tag: undefined reference

C ++模板,未定义的参考

我有一个函数声明如下: template <typename T> T read(); 并定义如下: template <typename T> T packetreader::read() { offset += sizeof(T); return *(T*)(buf+offset-sizeof(T)); } 但是,当我尝试在我的main()函数中使用它时: packetreader reader; reader.read<int>(); 我从g ++得到以下错误: g++ -o main main.o packet.o main.o: In function `main': main.cpp:(.text+0xcc): undefined reference to `int packetreader::read<int>()' collect2: ld returned 1 exit status make: *** [main] Error 1 任何人都可以指出我正确的方向?

对静态成员的未定义引用

我正在使用交叉编译器。 我的代码是: class WindowsTimer{ public: WindowsTimer(){ _frequency.QuadPart = 0ull; } private: static LARGE_INTEGER _frequency; }; 我得到以下错误: 对“WindowsTimer :: _频率”的未定义引用 我也试图改变它 LARGE_INTEGER _frequency.QuadPart = 0ull; 要么 static LARGE_INTEGER _frequency.QuadPart = 0ull; 但我仍然收到错误。 有谁知道为什么?

对“pow”和“floor”的未定义引用

我想在C中做一个简单的斐波纳契计算器,但编译gcc告诉我我缺lesspow和floor函数。 怎么了? 码: #include <stdio.h> #include <math.h> int fibo(int n); int main() { printf("Fib(4) = %d", fibo(4)); return 0; } int fibo(int n) { double phi = 1.61803399; return (int)(floor((float)(pow(phi, n) / sqrt(5)) + .5f)); } 输出: gab@testvm:~/work/c/fibo$ gcc fib.c -o fibo /tmp/ccNSjm4q.o: In function `fibo': fib.c:(.text+0x4a): undefined reference to `pow' fib.c:(.text+0x68): undefined reference to […]