gpt4 book ai didi

c++ - Eclipse CDT 和编译 C++ 模板

转载 作者:搜寻专家 更新时间:2023-10-31 01:52:28 28 4
gpt4 key购买 nike

我有一个非常基本的系统用于学习 C++ 模板。我的理解是应该在模板声明文件中包含模板定义并编译它而不是实现,如下所示:

/*LINKEDLIST.H*********************************/

#ifndef LINKEDLIST_H_
#define LINKEDLIST_H_

#include "node.h"

template <typename T>
class linkedlist {
/*..*/
};

#include "linkedlist.tpp"

/*LINKEDLIST.TPP*********************************/

#include "node.h"

template<typename T>
linkedlist<T>::linkedlist() {
/*..*/
}

如何让 Eclipse CDT 编译模板的头文件?它似乎试图自己编译模板文件并给我 linker input file unused because linking not done 错误。

Building file: ../linkedlist.tpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"linkedlist.d" -MT"linkedlist.d" -o "linkedlist.o" "../linkedlist.tpp"
g++.exe: warning: ../linkedlist.tpp: linker input file unused

我可以编写自己的 makefile,但我很想看看 IDE 中是否有针对此问题的解决方案。

最佳答案

您不构建 .tpp 文件。它们仅包含在带有 #include 指令的头文件中。

相反,您将头文件包含在适当的 .cpp 源文件中。

关于c++ - Eclipse CDT 和编译 C++ 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12625493/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com