记录一下g++的编译选项
假設main.cpp,hello.h,hello.cpp,其中main.cpp調用了hello類中的方法
1 生成hello.so
? g++ -shared hello.cpp -olibhello.so
2 編譯main.cpp,并鏈接,并指定運行時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,遇到過一個奇怪的問題,就是假設libhello.so還用到了libother.so,由于在/etc/ld.so.conf里配置錯誤了libother.so的目錄路徑,導致一直產生undefined reference to錯誤,但是在工程里對libother目錄路徑配置是正確的,有可能于查找路徑順序有關
轉載于:https://www.cnblogs.com/maximusfz/archive/2010/12/01/1893384.html
總結
以上是生活随笔為你收集整理的记录一下g++的编译选项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 非常认同的《SEO优化大全》
- 下一篇: 气愤!熟人安排相亲 我竟成了小三备胎!?