当您使用libtool构建程序时,它将处理在您的平台中使用共享库的所有困难和特殊性.
其中一个难点是调试,因为在调试时你想加载系统中没有安装的共享库(它们只是编译好的).因此,当libtool构建一个可执行文件时,它会将它移动到一个隐藏的目录(.libs)中,并且通常会在您可以看到它的位置放置一个具有相同名称的脚本或类似文件.这个脚本将使用正确的库运行正确的程序.
但是,显然你无法调试脚本gdb!因此,为了传递正确的参数,gdb以便能够使用正确的库调试正确的程序,您必须运行以下命令:
$ libtool --mode=execute gdb ./wireshark
Run Code Online (Sandbox Code Playgroud)
您可以通过运行来查看它的功能:
$ libtool --mode=execute echo ./wireshark
Run Code Online (Sandbox Code Playgroud)
只是不要.libs直接使用这些文件:使用always libtool或包装器脚本.