全新安裝的centos 9。(大部分是最小的)
我做了一個發現,我的機器上沒有 libl.so。
sudo yum install bison 上次元資料過期檢查:1:52:29 前,2022 年 2 月 23 日星期三 01:25:31 PM EST。軟體包 bison-3.7.4-5.el9.x86_64 已經安裝。
sudo yum install flex 上次元資料過期檢查:1:52:25 前,2022 年 2 月 23 日星期三 01:25:31 PM EST。已經安裝了 flex-2.6.4-9.el9.x86_64 包。
sudo yum install flex-devel 上次元資料過期檢查:1:52:35 前,2022 年 2 月 23 日星期三 01:25:31 PM EST。引數不匹配:flex-devel
我嘗試安裝 sudo yum groupinstall 'Development Tools'
沒有任何效果,有什么想法嗎?
uj5u.com熱心網友回復:
之前在包中提供的靜態庫 (libfl.a和)已移至包中。我不知道 RedHat 是否曾經提供過共享物件。libfl-static ChangeLog 中有一條注釋似乎是說有一個用共享物件呼叫的新包,但我在包 repo 中沒有看到它。無論如何,靜態庫應該沒問題。那里幾乎什么都沒有。libl.aflex-devellibfl-staticlibfl2
如果您使用libl,這意味著:
- 您沒有使用
%option noyywrap,這將洗掉對的呼叫yywrap(如果您使用的是yywrapin的版本libl,那么您不需要它來呼叫該函式,因為該版本無條件回傳 1),和/或 - 你還沒有提供你自己的
main功能。
我強烈建議在所有 flex 檔案中包含以下選項,除非您明確需要被抑制的功能:
%option noinput nounput noyywrap nodefault
in的main功能libl也很簡單。它可以替換為:
int main(void) {
while (yylex() != 0) { }
return 0;
}
uj5u.com熱心網友回復:
正如您在問題中指出的那樣 -flex-devel沒有找到。
它在PowerTools回購中。
啟用 repo 的“官方”方式是使用 yum config-manager 命令列:
yum config-manager --set-enabled powertools
這可能會給出一個關于缺少config-manager命令的錯誤:
No such command: config-manager
如果發生這種情況,那么您可以安裝 dnf-plugins-core 包:
yum install -y dnf-plugins-core
然后啟用 powertools repo,然后你應該能夠yum install flex-devel,它提供:
$ rpmquery --list flex-devel
/usr/lib64/libfl.a
/usr/lib64/libfl_pic.a
/usr/lib64/libl.a
/usr/share/doc/flex
/usr/share/licenses/flex-devel
/usr/share/licenses/flex-devel/COPYING
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/432871.html
