Build Makefile安装目标有时工作,有时不工作

Build Makefile安装目标有时工作,有时不工作,build,open-source,mono,makefile,monodevelop,Build,Open Source,Mono,Makefile,Monodevelop,我目前正在从事一个项目,该项目还应提供一个源代码包,以便打包到linux系统中。因为我使用monodevelop,所以我使用 mdtool generate-makefiles AudioCuesheetEditor.sln --simple-makefiles 生成makefile等,但有一个小问题。在某些系统上,运行最后一步时一切正常 make install 但有时并非如此。然后输出表示 [root@VMFedora17 Downloads]# make install make[1]

我目前正在从事一个项目,该项目还应提供一个源代码包,以便打包到linux系统中。因为我使用monodevelop,所以我使用

mdtool generate-makefiles AudioCuesheetEditor.sln --simple-makefiles
生成makefile等,但有一个小问题。在某些系统上,运行最后一步时一切正常

make install
但有时并非如此。然后输出表示

[root@VMFedora17 Downloads]# make install
make[1]: Entering directory `/home/sven/Downloads'
make[1]: Leaving directory `/home/sven/Downloads'
make[1]: Entering directory `/home/sven/Downloads'
make pre-install-local-hook prefix=/usr/local
make[2]: Entering directory `/home/sven/Downloads'
make[2]: Leaving directory `/home/sven/Downloads'
make install-satellite-assemblies prefix=/usr/local
make[2]: Entering directory `/home/sven/Downloads'
mkdir -p '/usr/local/lib'
cp   bin/Release /usr/local/lib/AudioCuesheetEditor
cp: omitting directory `bin/Release'
make[2]: *** [/usr/local/lib/AudioCuesheetEditor] Error 1
make[2]: Leaving directory `/home/sven/Downloads'
make[1]: *** [install-local] Error 2
make[1]: Leaving directory `/home/sven/Downloads'
make: *** [install-recursive] Error 1
这是在安装了KDE的Fedora17Linux上运行的。在另一款17 KDE软呢帽上,一切都很完美

谁能帮我一下,哪里出了错

Makefile可在此处找到:


谢谢你的帮助

从您的输出和提供的链接中,我在以下代码片段中发现了错误:

install-local: $(ASSEMBLY) $(ASSEMBLY_MDB)
    make pre-install-local-hook prefix=$(prefix)
    make install-satellite-assemblies prefix=$(prefix)
    mkdir -p '$(DESTDIR)$(libdir)/$(PACKAGE)'
    $(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE))
我猜$ASSEMBLY是一个目录,但我不确定。不带参数-r的命令cp不会递归复制目录。您可以尝试修改

$(call cp,$(ASSEMBLY),$(DESTDIR)$(libdir)/$(PACKAGE))

此外,如果要了解为什么原始版本在一台机器上工作,而在另一台机器上不工作,可以添加以下命令:

echo $(ASSEMBLY)

在执行上述命令之前,查看它们在不同机器上的输出是否不同。

没人知道吗?我真的被这个问题困住了,因为我不知道从哪里开始寻找这个问题?!谢谢你的帮助,但那没用。它有时工作,有时不工作。是的,$ASSEMBLY似乎是bin/Release,但为什么它有时会工作?我只是不明白,为什么它有时工作,有时不在同一台机器上。bin/Release是目录还是文件?我猜那是个文件。但是当遇到错误时,它表明它是一个目录。bin/Release是输出目录。您能否尝试将$call cp、$ASSEMBLY、$DESTDIR$libdir/$PACKAGE修改为cp-r$ASSEMBLY/*$DESTDIR$libdir/$PACKAGE?
cp -r $(ASSEMBLY) $(DESTDIR)$(libdir)/$(PACKAGE)
echo $(ASSEMBLY)