gmake 中的变量赋值似乎已损坏?

问题描述 投票:0回答:1

我知道这一定是我做错了,但我迷失了。

我有一个 makefile,其中一部分看起来像

COMMON_CFLAGS = $(DMFLAGS) \
-I$(subst ;, -I,$(DRV_INCLUDE_LIST)) \
-I$(subst ;, -I,$(SEN_INCLUDE_LIST)) \
-I$(subst ;, -I,$(DRV_EXT_INCLUDE_LIST)) \
-D$(BAMBOO_EXT_EXPAT_PARSER_ENTROPY_CONFIG)

# Add the license module dependencies. We only link to the release version of the license module.
ifeq ($(RTU),1)
COMMON_CFLAGS += -I$(SIMBALICENSE_DIR)/Include -DDO_LICENSE_CHECK
endif

$(warning In Makefile_FLAGS.mak: $${COMMON_CFLAGS}= '${COMMON_CFLAGS}')


##--------------------------------------------------------------------------------------------------
## There are no platform specific FLAGS for this project except Solaris.
##--------------------------------------------------------------------------------------------------
CFLAGS = $(COMMON_CFLAGS) -DHAVE_MEMMOVE -DOPENSSL_API_COMPAT=0x10000000L

$(warning In Makefile_FLAGS.mak: $${CFLAGS}= '${CFLAGS}')

我添加了

$(warning)
调用来尝试和调试似乎
CFLAGS
未正确设置的问题。

我在运行构建时得到的输出看起来像

[2024-09-21T00:46:06.935Z] Makefile_FLAGS.mak:37: In Makefile_FLAGS.mak: ${COMMON_CFLAGS}= '-DSIZEOF_LONG_INT=4 -DSQL_WCHART_CONVERT -DHAVE_LONG_LONG -I /home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include/odbcheaders -I. -I../Include -I../Include/Concurrency -I../Include/CustomDataTypes/StringSqlTypes -I../Include/DataEngine -I../Include/DataEngine/Metadata -I../Include/SQLEngineUtils -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include/Tools -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include/DSI -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include/DSI/Client -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include/Support -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include/Support/Exceptions -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include/Support/Queues -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include/Support/Threading -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include/Support/TypedDataWrapper -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/sql-engine/centos7/gcc4_8/debug32/include/SQLEngine -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/sql-engine/centos7/gcc4_8/debug32/include/SQLEngine/DSIExt -I/home/ec2-user/jk/packagey/artifact-library/expat/2.5.0/base/centos7/gcc4_8/release32/include -I/home/ec2-user/jk/packagey/artifact-library/openssl/3.0/base/centos7/gcc4_8/release32/include -I/home/ec2-user/jk/packagey/artifact-library/shared-licensing/3.0/base/centos7/gcc4_8/debug32/include -I/home/ec2-user/jk/packagey/vcpkg/buildtrees/shared-driversupport/build_configuration-dbg/dependencies/first-party/rapidjson/include -I/home/ec2-user/jk/packagey/artifact-library/sen-sdk/10.3/driver-dev-essentials/centos7/gcc4_8/debug32/include/odbcheaders -D"XML_POOR_ENTROPY"'

[2024-09-21T00:46:06.936Z] 

[2024-09-21T00:46:06.936Z] Makefile_FLAGS.mak:45: In Makefile_FLAGS.mak: ${CFLAGS}= '-O3 -fPIC -m32'

嗯,什么?难道不应该保证

CFLAGS
$(COMMON_CFLAGS)
行之后有
-DHAVE_MEMMOVE -DOPENSSL_API_COMPAT=0x10000000L
作为前缀,
CFLAGS = $(COMMON_CFLAGS) -DHAVE_MEMMOVE -DOPENSSL_API_COMPAT=0x10000000L
作为后缀吗?

makefile gnu-make
1个回答
0
投票

我刚刚意识到 makefile 是通过命令行参数来调用的

"CFLAGS=-O3 -fPIC -m32"
,这解释了它......

© www.soinside.com 2019 - 2024. All rights reserved.