簡體   English   中英

是否可以在 pkg-config.pc 文件中使用環境變量?

[英]Is it possible to use an environment variable in a pkg-config.pc file?

我正在嘗試使用將安裝在$(LIBDIR)/foo/中的庫libfoo.so ,其中$(LIBDIR)是一個環境變量,可以根據構建設置而有所不同。

為了讓其他組件正確鏈接到這個庫,它們需要設置正確的 LDFLAGS,即需要設置-L$(LIBDIR)/foo -lfoo 為了使它更通用一點,我想將一個 libfoo.pc 文件添加到 libfoo 並設置這些標志。 我的文件目前有以下內容:

Name: libfoo
Description: Example library
Version: 1.0.0
Libs: -L$(LIBDIR)/foo -lfoo

我使用 libfoo 的其他組件具有以下簡化的 makefile:

all:
    $(CC) bar.c -o out $(shell pkg-config --libs libfoo)

pkg-config 正確找到了該庫,但運行make會出現以下錯誤:

$ make
cc bar.c -o out -L$(LIBDIR)/foo -lfoo
/bin/sh: LIBDIR: command not found

換言之, $(LIBDIR)不會擴展為設置為環境變量的值。 是否可以在 .pc 文件中使用環境變量或 makefile 變量?

看起來在pkg-config.pc文件中使用環境變量是不可能的。

作為一種解決方法,我將改為在.pc 文件中添加一個前綴變量,該變量在我的bar組件編譯之前由腳本填充或覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM