[問題] 請問Solaris上的outb()要如何link ?

看板Linux作者 (越活越年輕的心)時間7年前 (2016/11/16 16:56), 編輯推噓0(005)
留言5則, 1人參與, 最新討論串1/1
抱歉借Linux版 問Solaris的問題 最近在porting linux source code到Solaris(Omni OS)上 outb()可以找得到對應的header file, link時卻會undefined symbol 不知道有沒有熟悉Solaris的前輩知道, 它在哪個檔案裡? // 下面是簡單範例, gcc main.c 在Linux會過 // Solaris下會 undefined symbol : outb #if defined(__linux__) #include <sys/io.h> #elif defined(__sun) #include <sys/ddi.h> #include <sys/sunddi.h> #endif int main() { int port = 0; unsigned char value = 0; #if defined(__linux__) outb(value,port); #elif defined(__sun) outb(port,value); #endif return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.146.86.112 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1479286588.A.20B.html

11/16 19:49, , 1F
以前沒用過這function,不過根據慣例經驗,從include看來,
11/16 19:49, 1F

11/16 19:49, , 2F
去系統放.so的目錄找看看有沒有檔名有ddi的.so檔,可能是
11/16 19:49, 2F

11/16 19:50, , 3F
libddi.so.n (n是版號數字)或libsunddi.so.n,如果有,就
11/16 19:50, 3F

11/16 19:50, , 4F
在編譯命令加 -lddi 或 -lsunddi
11/16 19:50, 4F

11/16 19:51, , 5F
反正想 link libxyz.so.n 就是加 -lxyz 這樣
11/16 19:51, 5F
文章代碼(AID): #1OB1yy8B (Linux)