請問Solaris上的outb()要如何link ? - Linux

Table of Contents

抱歉借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;
}

--

All Comments

Belly avatarBelly2016-11-20
以前沒用過這function,不過根據慣例經驗,從include看來,
去系統放.so的目錄找看看有沒有檔名有ddi的.so檔,可能是
Megan avatarMegan2016-11-23
libddi.so.n (n是版號數字)或libsunddi.so.n,如果有,就
在編譯命令加 -lddi 或 -lsunddi
Ursula avatarUrsula2016-11-27
反正想 link libxyz.so.n 就是加 -lxyz 這樣