如何在Linux上以发布模式构建HIDAPI库?

问题描述 投票:1回答:1

我正在尝试为HIDAPI库创建一个剥离的.so文件。我从https://github.com/libusb/hidapi.git克隆了库。我遵循了在Linux系统上进行构建的步骤:

./bootstrap
./configure
make
sudo make install 

它正在给定位置生成.so文件。当我使用file-command检查.so文件时,出现“未剥离”的情况。

$ file libhidapi-libusb.so.0.0.0
libhidapi-libusb.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=df7b02a51941902793e795cd5ff7ec3173d3a7fe, with debug_info, not stripped

如何在Linux的发布模式下生成HIDAPI库的.so文件?

linux makefile release autotools hidapi
1个回答
0
投票

如何在Linux上以发布模式构建HIDAPI库?

发布模式通常意味着(1)在-O2-O3处进行优化,并且(2)调试断言被删除。对于(2),通常定义-DNDEBUG。因此,您的CPPFLAGS应该包含-DNDEBUG;并且您的CFLAGSCXXFLAGS应该包含-O2-O3

发布版本可能会(也可能不会)删除符号。在公共图书馆中剥离符号没有多大用处。在封闭的源代码/私有二进制文件中剥离符号更有意义。通常,您不要想要剥离,因为剥离会使堆栈跟踪无用。

话虽如此,剥离二进制文件的标准GNU Make目标是make install-strip。另请参见GNU Make手册中的16.6 Standard Targets for Users

还请注意,共享库必须导出公共符号,因此您可能无法删除所需的符号。您可能也对GCC Wiki上的Symbol Visibility感兴趣。

© www.soinside.com 2019 - 2024. All rights reserved.