4

Linux で共有ライブラリをコンパイルするために、 native-maven-pluginを使用しています。コンパイラ オプションを渡して-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

ご覧のとおり、ソース ファイル パスは絶対パスであり、ユーザー名とプロジェクト構造が含まれています。私はそれをしたくありません。デバッグ シンボルを相対パス名に変更するにはどうすればよいですか?

4

1 に答える 1