当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > g++模板编译方法

Unix/Linux
FREEBSD软件安装
FREEBSD6.0 架设FTP 服务器
FreeBSD用port安装JDK和Jboss
FreeBSD软件安装卸载工具--Ports和Packages详解
FreeBSD 里面用设置 ADSL宽带上网
FreeBSD防止ARP攻击
FreeBSD下安装J2EE开发环境
FreeBSD6.2架设FTP服务器详解
ssh 命令说明
openbsd4.1+apache+mysql+php 环境配置
OpenBSD挂载cdrom, iso, usb的方法
FREEBSD 的使用知识
Freebsd6.0下通过ports安装apache2.2.0+mysql5.1.7+php5.1.2
FreeBSD常用命令集
FreeBSD中使用QUOTA(磁盘配额)来限制用户空间
简单更新ports tree 的方法
通过posts安装 OpenSSH
谈谈FreeBSD软件安装方法
FreeBSD下一块网卡绑定多个IP的方法
BSD下vi用法详解

Unix/Linux 中的 g++模板编译方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 103 ::
收藏到网摘: n/a

机器版本 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++ 估计不支持