2016-08-18 70 views
1

在我build.rs文件,我把以下內容:如何在使用gcc時添加我自己的編譯器標誌:Config?

extern crate gcc; 

fn main() { 
    gcc::Config::new().file("src/test.c").compile("libtest.a"); 
} 

,而且運作良好。我想添加一對夫婦標誌,比如鏈接到我自己的庫「-lmylib」,也許是「-fPIC」。

+1

請避免這樣做,如果*在所有可能的*。有一種PIC的方法,你應該可以要求貨物鏈接庫。請記住''gcc'箱子不僅僅適用於GCC:它還運行'clang'和Microsoft編譯器,具體取決於安裝的是什麼(是的,箱子命名錯誤)。碰到一個不能在你的系統上運行的箱子,真是讓人氣憤不止,因爲一些特定於平臺的細節。如果你真的需要這個,那麼確定,但首先要確保這一點,並儘可能提供後備。 *請。* –

+0

您是否試圖將庫鏈接到'libtest.a'或您的防鏽庫? –

+0

我只是想鏈接到外部C庫。我真的寧願不編譯它,但它在我編譯它時起作用(如果我不需要標誌)。我不能讓它鏈接,否則。我想我會專注於將它連接起來而不編譯,因爲無論如何我更喜歡。謝謝。 –

回答

4

它看起來像gcc::Config有任意GCC標誌稱爲flag功能:

extern crate gcc; 

fn main() { 
    gcc::Config::new() 
     .file("src/test.c") 
     .flag("-lmylib") 
     .flag("-fPIC") 
     .compile("libtest.a"); 
} 
+0

謝謝。我其實之前嘗試過,看起來並不奏效。 –

相關問題