• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            http://blog.sina.com.cn/s/blog_5e4b74040102x19u.html
            由于單位的項目需要,要把Linux和AIX環(huán)境下的靜態(tài)庫編譯為動態(tài)庫,現(xiàn)總結一下整個編譯的過程及重點注意事項。
            linux下的靜態(tài)庫文件編譯makefile如下:
            INCLUDE= \
            -I/libpath/hdf5-1.8.9/include/ -I/libpath/include -I/libpath/hdf5
            all: libname.a
            libname.a: zhdf.o
            ar -r libname.a zhdf.o
            zhdf.o: ../zhdf.cpp
            g++ $(INCLUDE) -Wall -g -c -lm ../zhdf.cpp -o zhdf.o
            .PHONY: clean
            clean:
            rm -rf *.o libname.a
            linux下的動態(tài)庫文件編譯makefile如下:
            INCLUDE= \
            -I/libpath/hdf5-1.8.9/include/ -I/libpath/include -I/libpath/hdf5
            all: libname.so
            libname.so: zhdf.o
            g++ -shared zhdf.o -o libname.so 
            zhdf.o: ../zhdf.cpp
            g++ $(INCLUDE) -Wall -g -c -fPIC -lm ../zhdf.cpp -o zhdf.o
            .PHONY: clean
            clean:
            rm -rf *.o libname.so
            區(qū)別主要是動態(tài)庫編譯時makefile需要-shared和-fPIC選項,另外,動態(tài)庫編譯成功后,需要進入使用該庫的用戶/home/user路徑下,vi .bashrc文件,用export指令將動態(tài)庫的路徑加入環(huán)境變量,如export LD_LIBRARY_PATH=yourlibpath,然后source .bashrc進行環(huán)境變量修改的保存,保存后可用env查看環(huán)境變量是否修改成功。以上,LINUX環(huán)境下動態(tài)庫的編譯就算完成啦!
            AIX下的靜態(tài)庫文件編譯makefile如下:
            INCLUDE= \
            -I/libpath/hdf5-1.8.9/include/ -I/libpath/include -I/libpath/hdf5/ \
            all: libname.a
            libname.a: zhdf.o
            ar -X64 -r libname.a zhdf.o
            zhdf.o: ../zhdf.cpp
            xlC $(INCLUDE) -q64 -qinfo -g -c -lm ../zhdf.cpp -o zhdf.o
            .PHONY: clean
            clean:
            rm -rf *.o libname.a
            AIX下的動態(tài)庫文件編譯makefile如下:
            INCLUDE= \
            -I/libpath/hdf5-1.8.9/include/ -I/libpath/include -I/libpath/hdf5/ \
            all: libname.so
            llibname.so: zhdf.o
            xlC $(INCLUDE) -q64 -bnoentry -qmkshrobj -blazy -G -o libname.so ../zhdf.cpp -lc
            zhdf.o: ../zhdf.cpp
            xlC $(INCLUDE) -q64 -c -lm ../zhdf.cpp -o zhdf.o
            .PHONY: clean
            clean:
            rm -rf *.o libname.so
            AIX環(huán)境下動態(tài)庫和靜態(tài)庫的編譯主要區(qū)別是動態(tài)庫使用-qmkshrobj進行動態(tài)庫的編譯,對應Linux環(huán)境下的-shared選項,動態(tài)庫編譯成功后,需要進入使用該庫的用戶/home/user路徑下,vi .profile文件,用export指令將動態(tài)庫的路徑加入環(huán)境變量,如export LIBPATH=yourlibpath,然后用. .profile完成對環(huán)境變量修改的保存,保存后可通過echo $LIBPATH查看是否添加成功。最后,由于AIX環(huán)境下動態(tài)庫的編譯機制問題,應用程序查找動態(tài)庫時,會去查找一個同名的.a文件。所以,很多人動態(tài)庫編譯成功,應用程序編譯時卻無法找到該動態(tài)庫。解決辦法是,在動態(tài)庫的路徑下,創(chuàng)建一個同名.a的連接,如ln -s libname.so libname.a。以上,AIX環(huán)境下動態(tài)庫的編譯也完成啦!
            亚洲国产精品热久久| 精品熟女少妇a∨免费久久| 国产精品gz久久久| 美女久久久久久| 97精品依人久久久大香线蕉97 | 久久国产精品无码一区二区三区 | 99精品伊人久久久大香线蕉| 99久久无码一区人妻| 久久香综合精品久久伊人| 精品久久久久久久| 欧美久久一区二区三区| 久久精品国内一区二区三区| 久久久久波多野结衣高潮| 亚洲午夜久久久精品影院| 18岁日韩内射颜射午夜久久成人| 天天综合久久久网| 久久国产色AV免费观看| 亚洲伊人久久综合中文成人网| 久久国产精品成人影院| 久久人做人爽一区二区三区 | 久久婷婷五月综合色高清| 国产精品久久久天天影视香蕉 | 91久久精品国产成人久久| 国内精品伊人久久久久av一坑| 亚洲人成无码网站久久99热国产| 办公室久久精品| 91久久精品国产成人久久| 久久这里只有精品久久| 国产精品无码久久综合| 久久影院综合精品| 少妇久久久久久被弄高潮| 狠狠色婷婷久久综合频道日韩 | 精品久久久久中文字幕日本| 亚洲精品无码久久久久sm| 久久AV高潮AV无码AV| 久久久久久久精品成人热色戒 | 久久er99热精品一区二区| 久久婷婷五月综合色奶水99啪| 久久人人妻人人爽人人爽| 色综合久久中文字幕无码| 伊人久久大香线蕉综合Av|