0

我想更改开源程序代码中的某些内容。这是使用 autotools,所以我在 eclipse 中将它作为 autotools 项目打开。我成功地构建了项目,但我不知道如何轻松添加一些使用 mysql.h 和 my_global.h 的代码。具体来说,我在哪里添加:

/usr/include/mysql
-lmysqlclient
-L/usr/lib

在 autotools 项目中,我找不到类似项目属性-> C/C++ 构建-> 设置-> 工具设置(C 编译器、C 链接器)之类的东西。

如果没有自动工具技能就不可能,那我就搞砸了。感谢您的回答。

4

1 回答 1

1

类似的东西-L/p/a/t/h是用户在运行配置时将添加的标志,但/usr/lib通常不会添加,因为默认情况下链接器会搜索它。如果您通过添加新的依赖来修改源代码libmysqlclient,您很可能只需要查看configure.ac(或configure.in,但如果configure.in存在,请考虑提交错误以更改名称或自行更改)并添加以下行:

AC_CHECK_LIB([mysqlclient],[my_init])

很可能已经调用了AC_CHECK_LIBin configure.ac,您应该在相应部分的末尾添加这一行。这将导致生成的配置脚本在配置时检查库的可用性,并在链接时添加适当的 -l 标志。与往常一样,用户负责设置CPPFLAGSLDFLAGS适当地填充-D-L标记。

很可能mysql提供了一个*.pc文件,您可能会看到使用PKG_CHECK_MODULES. 这样做将需要您做更多的工作,并且(在我看来)不太正确。

于 2013-07-05T13:56:09.927 回答