我在使用加密钱包时遇到了一些问题,可能并不是很重要。问题是makefile中包含了用于x86架构的文件,而我有AARCH64文件,但似乎找不到解决办法...
所以我想根据平台(在这种情况下是x86)进行更改,如下:
crypto/randomx/jit_compiler_x86.cpp
crypto/randomx/jit_compiler_x86.hpp
crypto/randomx/jit_compiler_x86_static.asm
crypto/randomx/jit_compiler_x86_static.hpp
crypto/randomx/jit_compiler_x86_static.S
当AARCH64时,返回此内容:
crypto/randomx/jit_compiler_a64.cpp
crypto/randomx/jit_compiler_a64.hpp
crypto/randomx/jit_compiler_a64_static.hpp
crypto/randomx/jit_compiler_a64_static.S
那么有没有更优雅的方法来完成这个操作,而不是在Makefile中合并这些cpp/hpp/s文件呢?
嗯,我认为这不起作用,因为x86实现有一个额外的文件。
另一个问题是它会创建依赖关系文件,形式为*.PO或*PLO文件,它们从哪里来,是由编译器动态生成的。
最后,在Makefile的结尾处声明了任何内容:
crypto/randomx/libbitcoinconsensus_la-jit_compiler_x86.lo: \
crypto/randomx/$(am__dirstamp) \
crypto/randomx/$(DEPDIR)/$(am__dirstamp)
这可能会引起一些问题,因为它里面有x86并且是一些临时的*.lo文件,我也不知道在编译过程中这些文件是在哪里引入的。
那么有没有办法解决这个问题呢?如果需要有单独的make文件,那也不是问题,只要我知道如何通过代码区分它们。我正在编译Linux,所以我想在configure.ac中有一种方法可以做到这一点,或者在autogen.sh或类似的设置环境的文件中。
提前感谢您的帮助。
x86_64
或aarch64
)存储在一个Make变量中,然后相应地构建文件名。你需要帮助的部分是哪一部分? - Beta