我有一些c代碼,它提供了libfoo.so和libfoo.a以及頭文件foo.h.大量的客戶端目前使用這些來自/ old_location/lib和/ old_location/include目錄的庫,這些目錄是它們被分配的地方。移動庫和頭文件
現在我想將此代碼移至/ new_location。然而,我無法告知客戶這種變化。我希望舊客戶端繼續訪問/ old_location中的庫和頭文件。
爲此,將創建符號鏈接到libs /頭到新的位置工作?
/old_location/lib/libfoo.so -> /new_location/lib/libnewfoo.so
/old_location/lib/libfoo.a -> /new_location/lib/libnewfoo.a
/old_location/inlcude/foo.h -> /new_location/inlcude/foo.h
[請注意,我需要來命名新的lib爲lib中新 foo和由於某些限制不libfoo的。這個重命名可以導致任何問題嗎?然而,生成這些代碼的C代碼沒有改變。]
它似乎適用於我試過的幾個簡單案例。但是,在有些情況下,客戶使用庫和頭文件的方式可能會因此更改而崩潰。請讓我知道這可能涉及什麼樣的錯綜複雜。對不起,如果這似乎是一個新手問題,我以前幾乎沒有與c工作過,並且是一個java人。
感謝德克響應。我特別關心將庫從libfoo重命名爲libnewfoo。你認爲這是否會造成麻煩? – baskin 2010-01-14 13:50:32
是的,如果客戶端使用動態鏈接,那麼很可能會破壞_run time_。 – 2010-01-14 14:40:46