我想在开源程序的代码中改变一些东西。这是使用autotools,所以我在eclipse中打开它作为autotools项目。我建立项目成功,但我不知道如何轻松添加一些代码,使用mysql.h和my_global.h。具体来说,我在哪里添加:
/usr/include/mysql
-lmysqlclient
-L/usr/lib
在autotools项目中,我找不到像Project properties->这样的类似内容。 C / C ++ Build->设置 - >工具设置(C编译器,C链接器)。
如果没有autotools技能就无法实现,我就搞砸了。谢谢你的回答。
答案 0 :(得分:1)
-L/p/a/t/h
之类的内容是用户在运行configure时将添加的标志,但通常不会添加/usr/lib
,因为默认情况下链接器会搜索到{}。如果您通过在libmysqlclient
上添加新的依赖项来修改源代码,则很可能只需要查看configure.ac
(或configure.in
,但如果configure.in
存在,请考虑提交错误以更改名称或自行更改)并添加以下行:
AC_CHECK_LIB([mysqlclient],[my_init])
AC_CHECK_LIB
中很可能已经调用了configure.ac
,您应该在相应部分的末尾添加此行。这将导致生成的configure脚本在配置时检查库的可用性,并在链接时添加适当的-l标志。与往常一样,用户有责任正确设置CPPFLAGS
和LDFLAGS
以填充-D
和-L
标记。
mysql
可能会提供*.pc
文件,您可能会看到使用PKG_CHECK_MODULES
的示例。这样做将涉及到您的更多工作,并且(在我看来)不太正确。