在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
机器版本 linux 2.4.30 ; g++ 3.3.4
g++ 对模板类编译的后,连接时,出现“undefined reference to `int f<long>(long&)'”。
文档代码结构
a.h ---- 定义模板
#ifndef __A__H #define __A__H template<typename T> int f( T &s); #endif a.cpp ---- 实现模板 #include"a.h" template<typename T> int f( T &s) { return 0; } main.cpp ---- 调用模板方法处理 #include "a.h" int main() { long a; f<long> (a); return 0; } 这个问题,是g++ “不够完善”引起,可以如下处理 1.将a.cpp内容,放到a.h中,去掉a.cpp,编译连接问题解决 2.如果还要 a.h 和 a.cpp,则要在main.cpp中,export --- g++ 估计不支持 |
请发表评论