为多个体系结构编译时的 C++ 多个函数定义
C++ mulitple definitions of function when compiling for multiple architectures
我有 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 抱怨函数的多个定义?
还是我应该换一种方式?
你应该换一种方式。我会使用您的构建系统从基于体系结构的构建中省略适当的 .cpp 文件(如果我正确理解您的情况)。
基本上,对于一个目标,比如 Win64,windowsasm.cpp 是一个依赖项并且被编译; Linux 也类似。查看您的系统如何管理构建的依赖项并试一试。
我有 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 抱怨函数的多个定义? 还是我应该换一种方式?
你应该换一种方式。我会使用您的构建系统从基于体系结构的构建中省略适当的 .cpp 文件(如果我正确理解您的情况)。
基本上,对于一个目标,比如 Win64,windowsasm.cpp 是一个依赖项并且被编译; Linux 也类似。查看您的系统如何管理构建的依赖项并试一试。