【发布时间】:2013-04-21 18:26:39
【问题描述】:
我正在尝试编译一个库(xcrysden,基于 Make 文件),它在编译期间执行外部依赖项的 ./configure - Tk 和 Tcl 8.5 - 并编译它们。
所以,结构大致是这样的:
主 Makefile:
...
cd external/src; make;
外部依赖(pre-)makefile(Tk):
include ../Make.sys
cd /unix
./configure
make
make install
外部makefile包含的Make.sys:
...
CFLAGS =...
CC =...
configure 显然会在/external/src/unix 中生成另一个makefile 供Tk 使用。
在 Tk 文档中是这样写的:
If you wish to specify a particular compiler, set the CC environment variable before calling configure. You can also specify CFLAGS prior to configure and they will be used during compilation.
但是从生成的 Makefile 中我肯定看到既没有使用定义的编译器 (CC) 也没有使用标志 (CFLAGS)。当它在另一个make文件中设置时,它是否符合“环境变量”的条件?
我实际上在编译 Tk 时遇到了问题,所以我不仅尝试传递编译器,还尝试传递链接信息
LDFLAGS = -L/opt/local/lib -lfontconfig 。
我想以一种简洁的方式进行(即仅修改依赖于 Tk 的库的 Make.sys)。但后来我面临的问题是,我不仅不知道如何将LDFLAGS 传递给 Tk 配置,而且甚至 CC/CFLAGS 都不存在。我不确定这是否特定于使用 ./configure 的特定库 (Tk),或者我误解了 ./configure 的一般用法。
p/s/ 我正在使用 gnu 编译器在 OS-X 上进行编译。
【问题讨论】:
-
这些变量是
exported 吗? -
不,他们不是。只是定义为书面。
标签: macos makefile tcl configure tk