0

我是 Linux/C++ 的新手,所以我需要你的帮助来理解下面的 makefile。

所以我的问题是

1)如何调用c编译器?我找不到任何电话和

2) 在 INC_DIR 指令中声明多个包含路径的正确语法是什么?

此 make 文件在 cygwin64 终端和 Windows 10 下使用。

# the SOURCE definiton lets move your makefile to another position
CONFIG          = LIBRARY

# set pathes to the correct directories
SRC_DIR         = ../../../../source/Lib/TLibCommon
INC_DIR         = ../../../../source/Lib
LIB_DIR         = ../../../../lib
BIN_DIR         = ../../../../bin

SRC_DIR1        = ../../../../source/Lib/libmd5
SRC_DIR2        =
SRC_DIR3        =
SRC_DIR4        =


USER_INC_DIRS   = -I$(SRC_DIR)
USER_LIB_DIRS   =

ifeq ($(HIGHBITDEPTH), 1)
HBD=HighBitDepth
else
HBD=
endif

# intermediate directory for object files
OBJ_DIR         = ./objects$(HBD)

# the library name
PRJ_NAME        = TLibCommon$(HBD)

# version information
MAJOR_VER       = 0
MINOR_VER       = 1
VER             = $(MAJOR_VER).$(MINOR_VER)

# defines to set
DEFS            = -DMSYS_LINUX

# set objects
OBJS            = \
            $(OBJ_DIR)/Debug.o \
            $(OBJ_DIR)/TComPicYuv.o \
            $(OBJ_DIR)/TComYuv.o \
            $(OBJ_DIR)/ContextModel.o \
            $(OBJ_DIR)/ContextModel3DBuffer.o \
            $(OBJ_DIR)/SEI.o \
            $(OBJ_DIR)/TComCABACTables.o \
            $(OBJ_DIR)/TComSampleAdaptiveOffset.o \
            $(OBJ_DIR)/TComBitStream.o \
            $(OBJ_DIR)/TComChromaFormat.o \
            $(OBJ_DIR)/TComDataCU.o \
            $(OBJ_DIR)/TComLoopFilter.o \
            $(OBJ_DIR)/TComMotionInfo.o \
            $(OBJ_DIR)/TComPattern.o \
            $(OBJ_DIR)/TComPic.o \
            $(OBJ_DIR)/TComPicSym.o \
            $(OBJ_DIR)/TComPicYuvMD5.o \
            $(OBJ_DIR)/TComPrediction.o \
            $(OBJ_DIR)/TComRdCost.o \
            $(OBJ_DIR)/TComRom.o \
            $(OBJ_DIR)/TComSlice.o \
            $(OBJ_DIR)/TComTrQuant.o \
            $(OBJ_DIR)/TComTU.o \
            $(OBJ_DIR)/TComInterpolationFilter.o \
            $(OBJ_DIR)/libmd5.o \
            $(OBJ_DIR)/TComWeightPrediction.o \
            $(OBJ_DIR)/TComRdCostWeightPrediction.o \

LIBS                = -lpthread

DEBUG_LIBS          =
RELEASE_LIBS        =

STAT_LIBS           =
DYN_LIBS            = -ldl

# the libraries to link with
STAT_DEBUG_LIBS     =
STAT_RELEASE_LIBS   =
DYN_DEBUG_LIBS      =
DYN_RELEASE_LIBS    =

# name of the base makefile
MAKE_FILE_NAME      = ../../common/makefile.base

# include the base makefile
include $(MAKE_FILE_NAME)
4

1 回答 1

0

C 编译器很可能在CC某个其他 makefile 中设置的变量中,大概是../../common/makefile.base, (否则cc将使用默认值 , )。

INC_DIR看起来不像是一个可以添加额外 C 包含搜索路径条目的地方。这个地方看起来更合适:

USER_INC_DIRS   = -I$(SRC_DIR)

在这里,您必须添加带有-I前缀的其他目录,如下所示:

USER_INC_DIRS   = -I$(SRC_DIR) -I/opt/enyo/include
于 2019-02-16T21:24:13.213 回答