编译多个体系结构时,C ++多个函数定义

时间:2015-07-21 01:09:36

标签: c++ cross-platform header-files

我有4个文件,linuxasm.h linuxasm.cpp windowsasm.h and windowsasm.cpp

在main.cpp中我有

#ifdef __linux
  #include "linuxasm.h"
#elif _WIN64
  #include "winasm.h"
#endif

.cpps中的函数名称是相同的 有没有办法防止GCC抱怨函数的多个定义? 或者我应该采取另一种方式?

1 个答案:

答案 0 :(得分:0)

你应该采取其他方式。我会使用你的构建系统从基于体系结构的构建中省略相应的.cpp文件(如果我理解你的情况)。

基本上,对于一个目标,比如Win64,windowsasm.cpp是一个依赖项并被编译;同样适用于Linux。查看您的系统如何管理构建的依赖项并尝试一下。