gpt4 book ai didi

c - 无法使 libtool 合并 yasm 创建的目标文件

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:00 25 4
gpt4 key购买 nike

我正在尝试让 libtoolyasm 一起工作。

yasm 从我的 .asm 源创建正确的 .o 文件,但我不知道如何获取 libtool 构建相关的 .lo.dep 文件。它想要构建共享库,合并 .o 文件。

最佳答案

libtool生成的文件通常使用以下布局: .lo文件在 build由位置元数据组成的目录;静态对象 .o build 中的文件目录;和 PIC/共享 .o build/.libs 中的对象目录。

您可以使用 libtool 编译模式。我不熟悉 yasm,所以你必须填写开关。它将运行 yasm构建两次,一次使用 -DPIC (可能还有其他共享对象选项)。

libtool --tag=CC --mode=compile yasm <options> src.asm

如果使用 automake,这可能需要对 .asm 的显式规则文件:

.asm.lo:
$(LIBTOOL) --tag=CC --mode=compile \
yasm <options> $<

请记住,这些是 Makefile 中的制表符,而不是 (8) 个空格字符!您可能还需要添加:.SUFFIXES: .asm .lo在此之前。我使用变量 $(LIBTOOL) ,因为某些平台(例如 OSX)需要将其安装为 glibtool ,这就是Makefile.in

生成的src.lo , src.o , .libs/src.o应该受到尊重 make clean例如。

为您的图书馆 libfoo ,您需要通过以下方式让 automake 了解这些来源:EXTRA_libfoo_la_SOURCES = src.asm , 和 obj deps 与 libfoo_la_LIBADD = src.lo .甚至可能值得添加到依赖项:libfoo_la_DEPENDENCIES = src.lo .

虽然我不明白为什么只放 src.asmlibfoo_la_SOURCES还不够。

关于c - 无法使 libtool 合并 yasm 创建的目标文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39413673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com