我知道这一定是我做错了,但我迷失了。
我有一个 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 是通过命令行参数来调用的
"CFLAGS=-O3 -fPIC -m32"
,这解释了它......