我正在使用native-maven-plugin在 linux 上编译共享库。我通过编译器选项-g
来启用调试符号生成。以下是 POM 的摘录:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<workingDirectory></workingDirectory>
<compilerStartOptions>
<compilerStartOption>-g</compilerStartOption>
</compilerStartOptions>
<linkerStartOptions>
<linkerStartOption>-shared</linkerStartOption>
<linkerStartOption>-g</linkerStartOption>
</linkerStartOptions>
<sources>
...
</sources>
</configuration>
</plugin>
native-maven-plugin在调用gcc时总是使用源文件的绝对路径。这也会导致调试符号中的绝对路径。nm -l libfoo.so
列出调试符号的输出如下所示:
0000797a T GetTickCount /home/myusername/projects/blabla/foo.c:3005
如您所见,源文件路径是绝对路径,包括我的用户名和项目结构。我不想要那个。如何将调试符号更改为相对路径名?