在已定义目标的linux上编译
Compilation on linux with defined target
我想用Makefile编译一个项目。
我已经在我的一个。h
中定义了linux的目标#define LINUX_TARGET (COMPILER_GCC_4_4_1|FAMILY_LINUX|TYPE_X86)
...
#ifdef _LINUX_TARGET_
#define __linux__
#define TARGET LINUX_TARGET
...
#ifdef __linux__
#define __LINUX__
#endif
那么在我的Makefile中,我将使用这个目标:
...
CFLAGS += -D_LINUX_TARGET_
...
但是当我编译我得到这个错误:
../../../../../../../Generic/Common/Include/target_definition.h:145:0: warning: "__linux__" redefined [enabled by default]
#define __linux__
^
../../../RefFT/Float/src/LIMITOR_main_32f.c:1:0: note: this is the location of the previous definition
/*---------------------------------------------------------------------------
^
我不明白为什么,因为这适用于macos或windows目标…
编辑
听完Joachim Pileborg的回答,我做了什么:
#define LINUX_TARGET (COMPILER_GCC_4_4_1|FAMILY_LINUX|TYPE_X86)
...
#ifdef _LINUX_TARGET_
#ifndef __linux__
#define __linux__
#endif
#define TARGET LINUX_TARGET
...
#ifdef __linux__
#define __LINUX__
#endif
因为__linux__
在Linux上构建时是预定义的
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 如何从Linux编译到SDL2应用程序到Windows?
- 使用 MINGW 和 CPLEX 库链接从 Linux 编译 Windows 可执行文件
- 如何在Visual Studio中添加Linux编译到Cmake Project
- Linux 编译 - 冲突的库
- Linux C++编译错误
- Linux 编译错误 - 无法将类型"字符串"转换为类型"字符串&&"
- 当我在Windows上运行它时,为什么我的Linux编译二进制不起作用
- 使用Linux g++编译带有附加库的c++程序
- 如何在Windows中为Unix/Linux编译C++应用程序
- c++ Linux 编译错误
- 使用链接linux编译GLFW应用程序问题
- C++新手的 Linux 编译
- Linux编译错误-GCC 4.3.4-模板参数列表太少
- Linux g++ 编译错误:错误:预期的"",""或"..."在"||"标记之前
- Linux g++编译错误:/usr/bin/ld:找不到-l/usr/local/include
- Linux 编译"long distance"兄弟姐妹之间的dynamic_cast失败
- 为较旧的Linux编译c++ 11程序
- 如何安装适用于Mingw Linux编译环境的BerkeleyDB
- Windows Linux c++ 编译问题:"no matching function for call"