当前位置:  技术问答>linux和unix

关于G++泛型问题

    来源: 互联网  发布时间:2016-08-01

    本文导语:  简单描述就是:在自己的一个LIB中的某个函数A中使用了一个自己定义的泛型函数,然后再自己的主程序中调用LIB中的那个 A函数,就会出现找不到泛型函数的错误。 下面是详细的描述: 我在一个头文件中定义了一个...

简单描述就是:在自己的一个LIB中的某个函数A中使用了一个自己定义的泛型函数,然后再自己的主程序中调用LIB中的那个
A函数,就会出现找不到泛型函数的错误。

下面是详细的描述:
我在一个头文件中定义了一个泛型函数
比如
template
void fun(T t)
{...
};


然后在另外一个CPP中的某个函数中使用了他

void fun2()
{
    int a = 5;
    fun(a);
}

再把这个CPP编译链接到一个LIB中
g++  -g -Wall -ansi -D_LINUX -D_DEBUG  -c -o time_t.o time_t.cpp
ar rv Core_Common_TimeSystem_Debug_Linux.a time_t.o
ar: creating Core_Common_TimeSystem_Debug_Linux.a
a - time_t.o
g++  -g -Wall -ansi -D_LINUX -D_DEBUG  -c -o MyTimer.o MyTimer.cpp
ar rv Core_Common_TimeSystem_Debug_Linux.a MyTimer.o
a - MyTimer.o

最后在MAIN的CPP中,使用了这个函数

int main()
{
    fun2();
}

生成可执行文件的时候告诉我找不到fun2
undefined reference to `fun2(int)'

但是,如果我在主程序中加入一次直接对fun的调用就OK了
比如

int main()
{
    int b = 3;
    fun(b);
    fun2();
}

就可以成功,并且执行后结果也是完全正确的

请问这个是什么原因?有什么解决方法吗?

|
在函数模板的定义前加export

export template
void fun(T t)
{...
};


|
模板要特化一下。

|
lz 给的示例代码的话,加上函数声明后编译是没有问题

还是再检查一下实际的代码

|
期待、、、、

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 简单问题简单问题简单问题简单问题
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • nginx Windows版相关问题及使用说明
  • 死锁的问题 多级锁定问题 循环锁定问题
  • vs2010下禁用vmware的方法以及解决vmware插件导致vs2010变慢的问题
  • [问题]双系统出现的问题!求问题的原因和解决办法!
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • 初学者问题。一个是编译hello world的问题,一个是配置ssh的问题
  • c/c++服务器程序内存泄露问题分析及解决
  • C程序问题:哪个高手帮我解释下下面的问题,主要是a[0]和&[0] 的区别 和编译器的问题??
  • ​部署 Docker 前必须问自己的四个问题
  • swing的问题还是jbuiler的问题??
  • spring的事务类型及spring和hibernate可能导致的问题分析
  • 菜鸟第一次安装红帽子7.2的一箩筐问题。每个问题会开个帖子,各放100分!请有安装经验的老鸟们帮忙解决。第二个问题:什么是LILO?怎么样


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3