[问题] 请问Solaris上的outb()要如何link ?

楼主: Blueshine (越活越年轻的心)   2016-11-16 16:56:26
抱歉借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;
}
作者: bitlife (BIT一生)   2016-11-16 19:49:00
以前没用过这function,不过根据惯例经验,从include看来,去系统放.so的目录找看看有没有档名有ddi的.so档,可能是libddi.so.n (n是版号数字)或libsunddi.so.n,如果有,就在编译命令加 -lddi 或 -lsunddi反正想 link libxyz.so.n 就是加 -lxyz 这样

Links booklink

Contact Us: admin [ a t ] ucptt.com