我有一组 cpp 文件,我想直接编译成二进制文件并编译成共享库。
我有
bin_PROGRAMS=mybin
lib_LTLIBRARIES=libmylib.la
COMMON_SOURCES=f1.cpp f2.cpp f3.cpp
mybin_SOURCES=main.cpp $(COMMON_SOURCES)
libmylib_la_SOURCES=$(COMMON_SOURCES)
当我运行它时,cpp 文件被编译两次,一次使用 libtool,一次没有,有时 libtool/automake 会抱怨
Makefile.am: object `f1.$(OBJEXT)' created both with libtool and without`
我尝试将 COMMON_SOURCES 放入 .a 文件中,但是当我将 .a 与 .la 链接时 libtool 会抱怨(说它不可移植)。
我需要的是类似
bin_LTPROGRAMS=mybin
但那不存在
编辑:澄清 - 我正在使用 automake/autoconf。我上面展示的是我的 automake Makefile.am