如何在 Linux 发布时构建 wabt 工具

How can I build wabt tools in release on Linux


我想在 Linux 发布时构建 **WebAssembly 二进制工具包**。我按照下面给出的说明进行操作,但它总是创建调试二进制文件。

https://github.com/WebAssembly/wabt#building-using-cmake-directly-linux-and-macos

我用来生成二进制文件的命令:

$ cmake .. -DCMAKE_BUILD_TYPE=Release
$ cmake --build .

它生成 wasm-objdump 但是当我在命令下面 运行 它似乎是调试二进制文件

$file wasm-objdump

O/P:

wasm-objdump: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=a7194a75b0079b4278a2cb380e140876071b8642, with debug_info, not stripped

更具体地说,我想要 wasm-objdump 的发行版。

正如@yflelion 在下面提到的“构建详细模式以查看执行的确切命令”

下面是命令我运行:

$ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
$ cmake --build .

O/P:

Scanning dependencies of target wasm-objdump
make[2]: Leaving directory '/home/kumarpr/Praveer_wabt/wabt/build'
/usr/bin/make -f CMakeFiles/wasm-objdump.dir/build.make CMakeFiles/wasm-objdump.dir/build
make[2]: Entering directory '/home/kumarpr/Praveer_wabt/wabt/build'
[ 72%] Building CXX object CMakeFiles/wasm-objdump.dir/src/tools/wasm-objdump.cc.o
/usr/bin/c++  -D__STDC_FORMAT_MACROS=1 -D__STDC_LIMIT_MACROS=1 -I/home/kumarpr/Praveer_wabt/wabt -I/home/kumarpr/Praveer_wabt/wabt/build -I/home/kumarpr/Praveer_wabt/wabt/third_party/gtest/googletest -I/home/kumarpr/Praveer_wabt/wabt/third_party/gtest/googletest/include  -std=c++11 -Wold-style-cast -fno-exceptions -O3 -DNDEBUG   -Wall -Wextra -Wno-unused-parameter -Wpointer-arith -g -Wuninitialized -Wno-clobbered -std=c++11 -o CMakeFiles/wasm-objdump.dir/src/tools/wasm-objdump.cc.o -c /home/kumarpr/Praveer_wabt/wabt/src/tools/wasm-objdump.cc
[ 73%] Building CXX object CMakeFiles/wasm-objdump.dir/src/binary-reader-objdump.cc.o
/usr/bin/c++  -D__STDC_FORMAT_MACROS=1 -D__STDC_LIMIT_MACROS=1 -I/home/kumarpr/Praveer_wabt/wabt -I/home/kumarpr/Praveer_wabt/wabt/build -I/home/kumarpr/Praveer_wabt/wabt/third_party/gtest/googletest -I/home/kumarpr/Praveer_wabt/wabt/third_party/gtest/googletest/include  -std=c++11 -Wold-style-cast -fno-exceptions -O3 -DNDEBUG   -Wall -Wextra -Wno-unused-parameter -Wpointer-arith -g -Wuninitialized -Wno-clobbered -std=c++11 -o CMakeFiles/wasm-objdump.dir/src/binary-reader-objdump.cc.o -c /home/kumarpr/Praveer_wabt/wabt/src/binary-reader-objdump.cc
[ 73%] Linking CXX executable wasm-objdump
/usr/bin/cmake -E cmake_link_script CMakeFiles/wasm-objdump.dir/link.txt --verbose=1
/usr/bin/c++   -std=c++11 -Wold-style-cast -fno-exceptions -O3 -DNDEBUG  -rdynamic CMakeFiles/wasm-objdump.dir/src/tools/wasm-objdump.cc.o CMakeFiles/wasm-objdump.dir/src/binary-reader-objdump.cc.o  -o wasm-objdump libwabt.a
make[2]: Leaving directory '/home/kumarpr/Praveer_wabt/wabt/build'
[ 73%] Built target wasm-objdump
/usr/bin/make -f CMakeFiles/wasm2c.dir/build.make CMakeFiles/wasm2c.dir/depend
make[2]: Entering directory '/home/kumarpr/Praveer_wabt/wabt/build'
cd /home/kumarpr/Praveer_wabt/wabt/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/kumarpr/Praveer_wabt/wabt /home/kumarpr/Praveer_wabt/wabt /home/kumarpr/Praveer_wabt/wabt/build /home/kumarpr/Praveer_wabt/wabt/build /home/kumarpr/Praveer_wabt/wabt/build/CMakeFiles/wasm2c.dir/DependInfo.cmake --color=

在这个项目中,调试信息是默认生成的,因为 -g 选项添加了 add_definitions

-g

Produce debugging information in the operating system’s native format (stabs, COFF, XCOFF, or DWARF). GDB can work with this debugging information.

On most systems that use stabs format, -g enables use of extra debugging information that only GDB can use; this extra information makes debugging work better in GDB but probably makes other debuggers crash or refuse to read the program. If you want to control for certain whether to generate the extra information, use -gstabs+, -gstabs, -gxcoff+, -gxcoff, or -gvms (see below).

要使此项目在发布模式和调试模式下构建,应从 add_definitions 中删除此选项并在 CMAKE_C_FLAGS_DEBUGCMAKE_CXX_FLAGS_DEBUG 中添加。

如果目标只是在发布模式下编译,则只能从 add_definitions 中删除此选项。去掉这个选项应该对代码的运行没有影响。