记录一下g++的编译选项
假設(shè)main.cpp,hello.h,hello.cpp,其中main.cpp調(diào)用了hello類中的方法
1 生成hello.so
? g++ -shared hello.cpp -olibhello.so
2 編譯main.cpp,并鏈接,并指定運(yùn)行時libhello.so的位置
g++ main.cpp -lhello -L./ -Wl,-rpath=./ -o main
?
值得一提的是,如果采用帶版本號的庫,例如libhello.so.2
鏈接命令可使用g++ main.cpp libhello.so.2 -L./ -Wl,-rpath=./ -o main
?
2)加入第二個so庫
g++ main.cpp -L./second/ -Wl,-rpath=./second/ -lsecond -L./hello/ -Wl,-rpath=./hello/ -lhello? -o main
?
ps,遇到過一個奇怪的問題,就是假設(shè)libhello.so還用到了libother.so,由于在/etc/ld.so.conf里配置錯誤了libother.so的目錄路徑,導(dǎo)致一直產(chǎn)生undefined reference to錯誤,但是在工程里對libother目錄路徑配置是正確的,有可能于查找路徑順序有關(guān)
轉(zhuǎn)載于:https://www.cnblogs.com/maximusfz/archive/2010/12/01/1893384.html
總結(jié)
以上是生活随笔為你收集整理的记录一下g++的编译选项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 非常认同的《SEO优化大全》
- 下一篇: 气愤!熟人安排相亲 我竟成了小三备胎!?