前の関連記事:linuxBean14.04(33)失敗したLibreOfficeSDKの例を再make:その1
/opt/libreofficedev5.0/sdk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/unix/nativeview.cのコンパイルがどこでひっかかっているのかもう少し追究してみます。結果としてはなにも解決できませんでした、、、
remakeでコンパイルしているコマンドを抜き出す
nativeview.cのコンパイルしているコマンドを環境変数を展開した状態でremakeで取り出します。
(remakeの使い方はlinuxBean14.04(31)GNU Make Debugger, Remake:その2参照。)
nativeview.cのMakefile、/opt/libreofficedev5.0/sdk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/unix/MaikefileをlinuxBean14.04(29)LibreOfficeDev5.0SDKの例を一括でmakeするで設定したGeanyで開いて、ビルド→setsdkenv。
remake --debugger
最初のルールに入るのでtargetでルールのターゲットと依存関係を確認します。
remake<0> target
/home/pq/libreoffice5.0_sdk/LINUXexample.out/lib/libnativeview.so: /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o
# Implicit rule search has not been done.
# Implicit/static pattern stem: `'
# File is an intermediate prerequisite.
# File does not exist.
# File has not been updated.
# Commands not yet started.
# automatic
# @ := /home/pq/libreoffice5.0_sdk/LINUXexample.out/lib/libnativeview.so
# automatic
# % :=
# automatic
# * :=
# automatic
# + := /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o
# automatic
# | :=
# automatic
# < := /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o
# automatic
# ^ := /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o
# automatic
# ? :=
# commands to execute (from `Makefile', line 65):
-$(MKDIR) $(subst /,$(PS),$(@D))
$(LINK) $(LIBRARY_LINK_FLAGS) $(LINK_LIBS) $(LINK_JAVA_LIBS) -o $@ $< \
-ljawt $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB) $(STDC++LIB)
/home/pq/libreoffice5.0_sdk/LINUXexample.out/lib/libnativeview.so: /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o
# Implicit rule search has not been done.
# Implicit/static pattern stem: `'
# File is an intermediate prerequisite.
# File does not exist.
# File has not been updated.
# Commands not yet started.
# automatic
# @ := /home/pq/libreoffice5.0_sdk/LINUXexample.out/lib/libnativeview.so
# automatic
# % :=
# automatic
# * :=
# automatic
# + := /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o
# automatic
# | :=
# automatic
# < := /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o
# automatic
# ^ := /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o
# automatic
# ? :=
# commands to execute (from `Makefile', line 65):
-$(MKDIR) $(subst /,$(PS),$(@D))
$(LINK) $(LIBRARY_LINK_FLAGS) $(LINK_LIBS) $(LINK_JAVA_LIBS) -o $@ $< \
-ljawt $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB) $(STDC++LIB)
nativeview.oからlibnativeview.soを作っています。
とりあえずnextで次のルールにいきます。
nextコマンドのあとtargetコマンドを使っていまいるルールの内容を確認します。
remake<3> target
/home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o: nativeview.c
# Implicit rule search has been done.
# Implicit/static pattern stem: `nativeview'
# File is an intermediate prerequisite.
# File does not exist.
# File has not been updated.
# Commands not yet started.
# automatic
# @ := /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o
# automatic
# % :=
# automatic
# * := nativeview
# automatic
# + := nativeview.c
# automatic
# | :=
# automatic
# < := nativeview.c
# automatic
# ^ := nativeview.c
# automatic
# ? :=
# commands to execute (from `Makefile', line 61):
-$(MKDIR) $(subst /,$(PS),$(@D))
$(CC) $(CC_FLAGS_JNI) $(CC_INCLUDES) $(SDK_JAVA_INCLUDES) $(CC_DEFINES_JNI) $(CC_OUTPUT_SWITCH)$(subst /,$(PS),$@) $<
/home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o: nativeview.c
# Implicit rule search has been done.
# Implicit/static pattern stem: `nativeview'
# File is an intermediate prerequisite.
# File does not exist.
# File has not been updated.
# Commands not yet started.
# automatic
# @ := /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o
# automatic
# % :=
# automatic
# * := nativeview
# automatic
# + := nativeview.c
# automatic
# | :=
# automatic
# < := nativeview.c
# automatic
# ^ := nativeview.c
# automatic
# ? :=
# commands to execute (from `Makefile', line 61):
-$(MKDIR) $(subst /,$(PS),$(@D))
$(CC) $(CC_FLAGS_JNI) $(CC_INCLUDES) $(SDK_JAVA_INCLUDES) $(CC_DEFINES_JNI) $(CC_OUTPUT_SWITCH)$(subst /,$(PS),$@) $<
nativeview.cからnativeview.oを作っています。
nativeview.c→nativeview.o→libnativeview.soという順に作られていることがわかりました。
このルールのあとnextするとエラーがたくさんでてくるので、このルールのコマンドをwriteコマンドで書き出します。
remake<9> write
File "/tmp/nativeview.o.sh" written.
File "/tmp/nativeview.o.sh" written.
書き出された/tmp/nativeview.o.shの内容です。
#!/bin/sh #/opt/libreofficedev5.0/sdk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/unix/Makefile:60 #cd /opt/libreofficedev5.0/sdk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/unix mkdir -p /home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview gcc -c -fpic -O -I. -I/home/pq/libreoffice5.0_sdk/LINUXexample.out/inc -I/home/pq/libreoffice5.0_sdk/LINUXexample.out/inc/examples -I../../../../../../include -I"/usr/include" -I"/usr/include/linux" -DUNX -DGCC -DLINUX -DCPPU_ENV=gcc3 -o/home/pq/libreoffice5.0_sdk/LINUXexample.out/slo/nativeview/nativeview.o nativeview.cこの/tmp/nativeview.o.shはすでに実行権限がついているので、3行目をコメントアウトして./nativeview.o.shとすればMakefileをmakeしたときと同じエラー出力が再現できました。
./nativeview.o.sh 2>&1 | tee ~/tmp/$(date +%Y%m%d_%H%M%S).log
linuxBean14.04(34)nativeview.cのコンパイルエラーの原因追究 - p--qの20150614_080301.logに出力結果を置いておきました。
問題解決を、と思ったのですがいまの私には全く力が及びませんでした。
0 件のコメント:
コメントを投稿