makefile - make:指定包依赖位置
问题描述
tldr:我怎么能告诉make
使用 alibrary.a
而不是在中搜索库/usr/local/Cellar/
我有 2 个 c 库(1 和 2)。我能够为所需的体系结构构建库 1,我想为库 2 做同样的事情。库 2 依赖于库 1。如果我要为我的个人计算机构建库 2,只需安装库 1 就足够了用 brew 然后为库 2 运行我的构建脚本。但是,由于我还必须为其他架构构建,所以它不会那样工作。
我已经成功地创建了library 1.a
包含所有需要的架构的文件,但是我找不到任何关于如何make
知道它应该与这个文件相关的信息。
for ARCH in ${ARCHS}
do
if [ "${ARCH}" == "i386" ] || [ "${ARCH}" == "x86_64" ]; then
PLATFORM="iPhoneSimulator"
EXTRA_CFLAGS="-arch ${ARCH}"
EXTRA_CONFIG="--host=x86_64-apple-darwin"
else
PLATFORM="iPhoneOS"
EXTRA_CFLAGS="-arch ${ARCH}"
EXTRA_CONFIG="--host=arm-apple-darwin"
fi
mkdir -p "${INTERDIR}/${PLATFORM}${SDKVERSION}-${ARCH}.sdk"
./configure --enable-float-approx --disable-shared --enable-static --with-pic --disable-extra-programs --disable-doc ${EXTRA_CONFIG} \
--prefix="${INTERDIR}/${PLATFORM}${SDKVERSION}-${ARCH}.sdk" \
LDFLAGS="$LDFLAGS ${OPT_LDFLAGS} -fPIE -miphoneos-version-min=${MINIOSVERSION} -L${OUTPUTDIR}/lib" \
CFLAGS="$CFLAGS ${EXTRA_CFLAGS} ${OPT_CFLAGS} -fPIE -miphoneos-version-min=${MINIOSVERSION} -I${OUTPUTDIR}/include -isysroot ${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer/SDKs/${PLATFORM}${SDKVERSION}.sdk" \
make -j4
make install
make clean
done
我在 c 方面不是很有经验 - 我认为这不是一项艰巨的任务,但我根本不知道谷歌要做什么。如果您能让我知道需要什么标志/配置或命令make
来实现,library 1.a
那将非常有帮助。
我确实找到了-L
标志但是指定文件夹没有帮助,它仍然说
configure: error: Package requirements (opus >= 1.1) were not met:
No package 'opus' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables DEPS_CFLAGS
and DEPS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
我试过的是添加export DEPS_LIBS=$HOME/Downloads/libopusenc/libopus.a
,但它仍然是一样的。它是否还需要 DEPS_CFLAGS 中的某些内容?如果是的话,如果需要的话,我可以在那里输入什么以使其“不为空”?
我是否需要以某种方式直接指定库的名称和它正在搜索的名称?
解决方案
只需做export DEPS_CFLAGS=' '
就足以让脚本跳过该步骤。我现在确实遇到了其他问题,但如果我无法从这里弄清楚,我会提出一个新问题
推荐阅读
- javascript - 滚动时转到顶部按钮完全消失
- android-studio - 选中单选按钮或复选框时,计算价格
- sas - 线性回归:使用 SAS 查找重要的类变量
- ios - 操作无法完成。(Starscream.WSError 错误 1。) RBSManager
- jquery-select2 - 如何在 Select2 APEX 插件中设置预选值?
- c# - 有没有一种简单的方法来确定当前方法在哪个线程上运行?
- python - Python:如何计算移动平均交叉的数量+每个交叉之间的最高点?
- powershell - 将 $args 变量传递给函数
- java - JSONObject 未经检查地调用 put(K,V) 作为原始类型 java.util.HashMap 的成员
- python - Django:FormValidationError 时不保存复选框