- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将带有手写 Makefile.in
(当然还有 configure.in
)的旧自动工具设置转换为最新的( Makefile.am
和 configure.ac
)。到目前为止一切看起来都很好,但我遇到了一些我无法在其他问题中找到答案的问题。
我在 Makefile.am
中添加了一个定义,它包含在我在 _SOURCES
中指示的所有 c 模块的编译中,但只有一个。我看不出 c 源代码之间有什么区别,除了编译中不包含定义的那个是程序的主体。
Makefile.am
代码下方(相关部分):
bin_PROGRAMS = wpe we
lib_LTLIBRARIES = libxwpe-x11.la libxwpe-term.la
libxwpe_x11_la_SOURCES = we_xterm.c WeXterm.c
libxwpe_x11_la_CPPFLAGS = -DLIBRARY_DIR=\"@libdir@/xwpe\"
libxwpe_term_la_SOURCES = we_term.c
libxwpe_term_la_CPPFLAGS = -DLIBRARY_DIR=\"@libdir@/xwpe\"
wpe_SOURCES = we_main.c we_block.c we_unix.c we_e_aus.c \
we_edit.c we_fl_fkt.c we_fl_unix.c we_hfkt.c \
we_menue.c we_mouse.c we_opt.c we_wind.c \
we_prog.c we_progn.c we_debug.c WeString.c \
WeSyntax.c WeExpArr.c WeLinux.c we_gpm.c
wpe_LDADD = libxwpe-x11.la libxwpe-term.la
wpe_CPPFLAGS = -DLIBRARY_DIR=\"@libdir@/xwpe\"
we_SOURCES = we_main.c we_block.c we_unix.c we_e_aus.c \
we_edit.c we_fl_fkt.c we_fl_unix.c we_hfkt.c \
we_menue.c we_mouse.c we_opt.c we_wind.c \
we_prog.c we_progn.c we_debug.c WeString.c \
WeSyntax.c WeExpArr.c WeLinux.c we_gpm.c
编译的结果是所有的 c 源代码都使用 LIBRARY_DIR 的定义进行编译,除了 we_main.c
是在没有这个定义的情况下编译的。
有谁知道是什么导致了这种差异?我究竟做错了什么?我不应该定义 wpe_CPPFLAGS
而应该定义其他标志吗?
编辑 1: 查看 Makefile,我注意到它多次编译 we_main!它创建 we-we_main.o
、wpe-we_main.o
和 xwe-we_main.o
。这些文件都编译正确,但我唯一不明白的是 we_main.o
的编译,它是在没有定义的情况下编译的。看起来我缺少一个我应该定义的标志。可能我误解了 Makefile.am 中的 automake 输入。我应该定义一个额外的标志吗?如果有,是哪一个?
编辑 2: 多次编译似乎有点浪费。我是 autotools 的新手,所以可能会有更好的解决方案。如有必要,我将针对此主题提出不同的问题。
最佳答案
由于在 EDIT 1
中的观察,我找到了答案。首先,我使用了 CPPFLAGS = -DLIBRARY_DIR=\"@libdir@/xwpe\".
autoreconf警告我更好地使用
AM_CPPFLAGS`,所以我这样做了,这解决了问题.
此外,我发现我不需要所有程序特定的 we_CPPFLAGS
、wpe_CPPFLAGS
和 xwe_CPPFLAGS
,因为 AM_CPPFLAGS
添加到所有。
显然,如果 xxx 与其他程序不同,您只需要特定的 xxx_CPPFLAGS
。
很抱歉打扰了大家。我希望这对有相同查询的其他人有所帮助。
编辑 1: 此更改还删除了相同来源的多个编译。事后看来,这是有道理的:如果xxx_CPPFLAGS
特定于一个程序,那么程序xxx
需要单独编译。如果它们都具有相同的标志,则不再需要这样做。
关于c - Autotools:将 -D 与变量一起使用适用于除一次编译以外的所有编译(C 编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44983339/
我已经坚持了好几天了……很抱歉遇到这样的问题,但是我只是F#本身的初学者。由于关于类型提供程序的讨论很多,所以我决定建立一个类型提供程序并撰写一篇有关它的论文。当我开始时,我不知道什么是类型提供程序。
我正在开发LAN项目唤醒功能,但是我想控制局域网中计算机是否打开。但是我不想使用ICMP或WMI(我的网络上有DC)。那么,对于此问题,是否还有其他选择,例如“套接字连接”,请检查特定端口是否正在使用
我们有一个旧的VB6应用程序,该应用程序使用Crystal Reports XI生成打印报告。我们已经通过经验发现,如果Crystal Reports打印引擎选择了错误版本的 usp10.dll (W
我正在尝试获取有效的 Android 权限列表。我知道 http://developer.android.com/reference/android/Manifest.permission.html
嗨,我是 nginx 的新手,我试图在我的服务器(运行 Ubuntu 4)上设置它,它已经运行了 apache。 所以在我 apt-get install 它之后,我尝试启动 nginx。然后我收到这
如何在VB 6中检查对象的类型-除了'TypeName'之外,是否还有其他方法,因为无法通过'TypeName'进行检查,我希望使用类似QuichWatch窗口的方法。 最佳答案 对于对象变量,请使用
我的 JSP 应用程序中有一个错误。发布后我的 session 被清除: YAHOO.util.Connect.asyncRequest('POST', Url, callback, post
我是一名优秀的程序员,十分优秀!