如何用automake 在Makefile 中生成 这样的FLAG “-Wl,-rpath=/usr11111/lib”

发布于 2022-10-15 07:29:35 字数 332 浏览 43 评论 0

换种方式问问题,

如何用automake 在Makefile 中生成 这样的FLAG “-Wl,-rpath=/usr11111/lib”

本来想用命令行来做,像这样:
./configure ... LDFLAGS=...:-Wl,-rpath=/usr11111/lib

可惜实践证明了这样是不行的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

铜锣湾横着走 2022-10-22 07:29:36

你是不是想要依赖第三方库?比如形如./configure --with-some-libs="mylibpath"?

溺孤伤于心 2022-10-22 07:29:36

像这样?

bin_PROGRAMS = tconf
tconf_SOURCES = callback.c main.c parser.c session.c tc.c tcglobal.c wrap.c wizard.c
tconf_LDADD = @GTK_LIBS@ -L. -ltc $(LIBINTL)

許願樹丅啲祈禱 2022-10-22 07:29:36

像这样?

bin_PROGRAMS = tconf
tconf_SOURCES = callback.c main.c parser.c session.c tc.c tcglobal.c wrap.c wizard.c
tconf_LDADD = @GTK_LIBS@ -L. -ltc $(LIBINTL)

伤感在游骋 2022-10-22 07:29:36

本帖最后由 reer 于 2011-05-10 09:36 编辑

是啊,要依赖第三方的一个动态库,这个库在运行程序(在arm平台上)的时候在 /usr11111/lib/ 下

你是不是想要依赖第三方库?比如形如./configure --with-some-libs="mylibpath"?
bittertea 发表于 2011-05-09 22:51

站稳脚跟 2022-10-22 07:29:36

本帖最后由 bittertea 于 2011-05-10 09:47 编辑

configure.in里用 AC_CHECK_LIB检查依赖,比如:
AC_CHECK_LIB(resolv, inet_aton) , AC_CHECK_LIB检测成功后会追加(LIBS)变量

或者复杂点的:

  1. dnl Check for OpenSSL libraries.
  2. OPENSSL_LIBS=
  3. old_LIBS=$LIBS
  4. if test "x$OPENSSL_LIB_DIR" != "x"; then
  5.     LIBS="-L$OPENSSL_LIB_DIR $LIBS"
  6. fi
  7. AC_CHECK_LIB(crypto, MD5_Init,
  8.     [
  9.         AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the 'crypto' library (-lcrypto).])
  10.         if test "x$OPENSSL_LIB_DIR" != "x"; then
  11.             OPENSSL_LIBS="-L$OPENSSL_LIB_DIR"
  12.         fi
  13.         if test "x$STATIC_LINK" = "xtrue";then
  14.              OPENSSL_LIBS="$OPENSSL_LIB_DIR/libcrypto.a"
  15.          else
  16.         OPENSSL_LIBS="$OPENSSL_LIBS -lcrypto"
  17.         fi
  18.     ], [AC_MSG_ERROR([-lcrypto not found, please install openssl first])])
  19. LIBS=$old_LIBS
  20. ......
  21. AC_SUBST(OPENSSL_LIBS)
  22. export OPENSSL_LIBS
  23. ## 然后你在你的Makefile.am里的****_LDADD="$(OPENSSL_LIBS)"即可

复制代码以上大部分脚本参考一些autotools做的开源项目. GOOGLE CODE SEARCH--利器

予囚 2022-10-22 07:29:35

./configure LDFLAGS="-Wl,-rpath=/usr11111/lib"

我这里可以的啊,最后LD的时候带上自设的参数了

注定孤独终老 2022-10-22 07:29:35

本帖最后由 bittertea 于 2011-05-09 18:30 编辑

为什么要手动定义LDFLAGS变量? 直接在configure.in用AC_SUBST导出指定名称的路径, 然后Makefile.am使用这些路径不行么?

左耳近心 2022-10-22 07:29:35

to bittertea:
请教具体要怎么做呢?

回忆躺在深渊里 2022-10-22 07:29:35

本帖最后由 reer 于 2011-05-09 19:14 编辑

另外,应该不是手动定义或者自动定义LDFLAGS的问题,而是定义的LDFLAGS格式不对,不能发挥预期的作用

我预期的作用是:
LDFLAGS = -L/home/work/..../lib
LDFLAGS += -Wl,-rpath,/usr11111/lib

其实把-Wl,-rpath,/... 放到LDFLAGS 可能也不对,总之,我是被Makefile 彻底搞死了,大家救命啊!!!

nnd,感觉是被automake 搞了,这套东西还不如直接的makefile来得简单,感觉掌握automake 这一套东西不容易...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文