我刚开始使用libtool。然而,这个问题似乎很奇怪。一切都在那里,但libtool说" libtool : link:'cuda_transfer.lo‘不是一个有效的libtool对象“。但是,生成这个lo文件的规则就在Makefile中。此外,这两个头文件也在它们应该在的位置,并且可以正常工作。你知道哪里出了问题吗?
cuda_transfer.lo: particles_cuda.h ../../include/psc_particles_cuda.hMakefile中出现cuda_transfer.lo的另外两个位置如下
libsubdir_la_DEPENDENCIES = cuda_transfer.lo \
libsubdir_la_LIBADD = \
cuda_transfer.lo \.c.lo:段如下:
.c.lo:
$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
$(am__mv) $$depbase.Tpo $$depbase.Plo
# $(AM_V_CC)source='$<' object='$@' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $<如何解释这个人类不友好的代码。==
下面是Brett建议的代码段。
noinst_LTLIBRARIES = libsubdir.la
libsubdir_la_SOURCES = \
psc_fields_cuda.c \
psc_particles_cuda.c \
psc_push_particles_cuda.c \
psc_push_fields_cuda.c \
psc_bnd_cuda.c \
psc_bnd_particles_cuda.c \
psc_bnd_fields_cuda.c \
b40c/kernel_utils.h \
b40c/radixsort_kernel_common.h \
b40c/radixsort_key_conversion.h \
b40c/radixsort_reduction_kernel.h \
b40c/radixsort_scanscatter_kernel.h \
b40c/radixsort_scanscatter_kernel3.h \
b40c/radixsort_scanscatter_kernel4.h \
b40c/radixsort_spine_kernel.h \
b40c/vector_types.h \
cuda_common.h \
cuda_sort2.h \
cuda_sort2_spine.h \
particles_cuda.h \
psc_bnd_cuda.h \
psc_bnd_cuda_fields.h \
psc_cuda.h
libsubdir_la_LIBADD = \
cuda_transfer.lo \
cuda_spine.lo \
cuda_sort2.lo \
cuda_sort3.lo \
cuda_exchange_particles.lo \
cuda_exclusive_scan_2.lo \
cuda_push_part_yz_1vb.lo关于cuda_transfer.lo唯一看起来像是生成规则的东西是
cuda_transfer.lo: particles_cuda.h ../../include/psc_particles_cuda.h发布于 2014-02-08 14:30:14
好吧,最好永远不要读configure.ac :-)但是如果你仍然希望,configure.ac是m4预处理器代码和普通(伯恩)外壳代码片段的组合。您可以查看info m4和info autoconf,这些文档相当不错。
你问题的难点是关于.lo文件的。似乎你的makefile包含了依赖链,但是没有明确的构建规则。您可以尝试查找编译.c -> .lo的通用规则,如下所示:
.c.lo:
$(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
...发布于 2018-11-30 17:57:08
试试这个:
yum -y install libtool*然后清除并再次重新启动
发布于 2014-04-08 00:24:36
安装最新的libtool。删除.lo文件并再次使用'make‘。
https://stackoverflow.com/questions/21642600
复制相似问题