Pkg config 为什么';包装配置是否支持CXXFLAGS?

Pkg config 为什么';包装配置是否支持CXXFLAGS?,pkg-config,Pkg Config,我注意到pkg config只提供了CFLAGS和LIBS(又称LDFLAGS) 为什么不支持pkg config来提供cxflags?是的,问题是一年多以前的事了 IMHO-这应该是固定的,但这将需要很长时间。同时,你会遇到相互冲突的旗帜。我能想到的冲突标志的最好例子是“-std=??”选项,它在使用错误时会导致警告 步骤1-将“--std=c99”和“--std=c++11”放在PC文件中。 步骤2-要求用户在其Makefile中执行以下操作 PKG_CFLAGS := $(shell pk

我注意到pkg config只提供了
CFLAGS
LIBS
(又称
LDFLAGS


为什么不支持pkg config来提供
cxflags

是的,问题是一年多以前的事了

IMHO-这应该是固定的,但这将需要很长时间。同时,你会遇到相互冲突的旗帜。我能想到的冲突标志的最好例子是“-std=??”选项,它在使用错误时会导致警告

步骤1-将“--std=c99”和“--std=c++11”放在PC文件中。 步骤2-要求用户在其Makefile中执行以下操作

PKG_CFLAGS := $(shell pkg-config --cflags FILENAME.pc)
CFLAGS     := $(filter-out --std=c99, ${PKG_CFLAGS})
CXXFLAGS   := $(filter-out  --std-c++11,${PKG_CFLAGS})

问题:这对自动配置和基于Cmake的东西不起作用:-(

是的,问题是一年多以前的事了

IMHO-这应该是固定的,但需要很长时间。同时,您会遇到冲突的标志。我能想到的冲突标志的最佳示例是“-std=??”选项,它在使用错误时会导致警告

步骤1-将“--std=c99”和“--std=c++11”放在PC文件中。 步骤2-要求用户在其Makefile中执行以下操作

PKG_CFLAGS := $(shell pkg-config --cflags FILENAME.pc)
CFLAGS     := $(filter-out --std=c99, ${PKG_CFLAGS})
CXXFLAGS   := $(filter-out  --std-c++11,${PKG_CFLAGS})

问题:这与autoconfig和基于Cmake的内容不兼容:-(

我不喜欢pkg配置需要用户进行如此艰苦的工作。更简单的解决方法是要求用户使用特定的标准,而不要将其写入pkg配置中。但是,最好的解决方案当然是pkg配置中存在Cxxflags。此外,我反对将
-std=c99
写入.pc文件bec中因为另一个库可能会请求
-std=gnu17
,然后您就有问题了。最好在文档中请求一组标准,让用户选择正确的标准。我不喜欢这样的想法,即pkg配置需要用户进行如此艰苦的工作。一个更简单的解决方法是要求用户使用特定的标准,而不是编写但是,最好的解决方案当然是pkg配置中存在Cxxflags。此外,我反对在.pc文件中编写
-std=c99
,因为另一个库可能会请求
-std=gnu17
,然后您就有问题了。最好在文档中要求一组标准,然后让用户选择正确的一个。