C++ Makefile无法链接由C++;
Makefile包含创建libclamav的.la扩展名文件 libclamav_la_LIBADD=@LIBLTDL$(IFACELIBADD)$(LLVMLIBADD) libclamav_internal_utils.la@libclamav_LIBS@@THREAD_LIBS@@LIBM@ libclamav_la_DEPENDENCIES=@LTDLDEPS@$(IFACEDEP)$(LLVMDEP) libclamav_internal_utils.la libclamav_la_CFLAGS= -I../my\u include/src/wrapper-DSEARCH\u LIBDIR=\“$(LIBDIR)\” libclamav_la_LDFLAGS=-L/usr/lib32-lOpenCL@TH_SAFE@-版本信息 @LIBCLAMAV_版本@-无未定义 我的观点是通过添加-L/My_shared_library_path/mylib.so到libclamav_la_LIBADD将共享库链接到Makefile libclamav_la_LDFLAGS=-L/my_shared_library_path/-lmylib@TH_SAFE@-version info @LIBCLAMAV_版本@-无未定义 Makefile无法通过出现错误而喜欢成员函数名 ../libclamav/.libs/libclamav.so:对“mylib.so中的成员函数”的未定义引用C++ Makefile无法链接由C++;,c++,makefile,shared-libraries,autotools,C++,Makefile,Shared Libraries,Autotools,Makefile包含创建libclamav的.la扩展名文件 libclamav_la_LIBADD=@LIBLTDL$(IFACELIBADD)$(LLVMLIBADD) libclamav_internal_utils.la@libclamav_LIBS@@THREAD_LIBS@@LIBM@ libclamav_la_DEPENDENCIES=@LTDLDEPS@$(IFACEDEP)$(LLVMDEP) libclamav_internal_utils.la libclamav_la_C
您问题中引用的文本显然属于依赖pkg配置的自动确认打包的
Makefile.am
(或Makefile.in
)中。如果这是Makefile
中的文本,那么您还有很多问题要处理。由于@LIBCLAMAV_LIBS@
已出现在LIBCLAMAV_la_LIBADD
中,因此需要配置pkg config
以发出适当的标志,以便在配置时找到库
将特定于机器的代码放入Makefile.am
(或Makefile.in
)中是不合适的。由于my\u shared\u library\u path
特定于您的框,因此将相关标志添加到构建中的适当方法是通过pkg config
或在configure
期间添加到CPPFLAGS
和LDFLAGS
。(注意:-I
标记在autoconf
派生打包进入CPPFLAGS
中,而不是CFLAGS
)
如果确实运行了配置,请尝试:
configure ... LDFLAGS=-L/my/shared/library/path CPPFLAGS=-I/my_include/src/wraper
您能否使用这些标志在命令行上成功地执行链接(即不使用makefile)?