2015-10-26 69 views
0

我試圖找到一種方法將簡單的C代碼轉換爲NASM程序集。我嘗試過使用objconv並下載並解壓縮並構建它,因爲我使用的是MAC;但是,它似乎並沒有工作。我不斷收到「-bash:objconv:command not found」。有誰知道另一種方式,或可以幫助我解決-bash錯誤。C到NASM轉換

+1

一些C編譯器可以選擇輸出彙編代碼。 – rcgldr

+1

,直到你明白如何永久性地將elem添加到PATH中,只需使用'/ full/path/to/bindir/objconv文件'。您可能會收到諸如「無法找到libc.so」(或「lsomething.a」等類似消息)的消息。然後,您必須設置LD_LIBRARY_PATH以包含這些庫文件的路徑。發佈關於如何解決LD_LIBRARY_PATH的新問題。祝你好運。 – shellter

回答

2

Bash是一個程序,用於在終端中輸入文字並啓動其他程序。如果它報告錯誤,那是因爲它找不到要運行的程序(至少在這種情況下)。

您需要找到objconv的預打包安裝,或者您需要完成「整合」您自己的objconv副本的工作。

如果您可以識別要運行的可執行文件(可能稱爲objconv),則需要將其添加到您的路徑中。最簡單的方法(如果它只是你)是驗證你的〜/ .bashrc或者〜/ .bashprofile有一行看起來像

PATH=$PATH:${HOME}/bin 

,如果它不看起來完全不用擔心一樣。只要確保有$ {HOME}/bin或〜/ bin(〜是$ {HOME}的短版本)。

如果您有然後鍵入命令

cd ~/bin 
ln -fs ../path/to/objconv 

,你會在您的家二進制文件目錄的軟鏈接(文件的類型),並且該程序應該可以在命令行。

如果您創建了該文件,並且上面沒有任何錯誤,但它不可用於命令行,則可能需要在objconv的「真實」(非鏈接)副本上設置可執行位。

如果這不起作用,那麼現在您應該爲更好,更具體的問題做好準備。

2

如果您安裝了gcc,請嘗試gcc -masm=intel -S source.c以與MASM非常相似的語法生成程序集文件。