2015-11-05 69 views
0

我遇到了問題,我正在與Bash合作,但它在ARM64 Chroot上的Debian Sid(Unstable)上。 (我這樣做是因爲它提供Debian軟件包的維護者。否則,我從運行不穩定了,前沿的東西)...重拍正在跳過我想調試的shell命令

# echo $0 
/bin/bash 

這似乎是建立一個-o2,而不是我的shell命令之一-O2。我懷疑內存被淘汰出局,而-o2只是一個症狀。

# make cryptlib.o 
g++ -DNDEBUG -g3 -o2 -pipe -c cryptlib.cpp 

這裏的Remake下相同的命令:

# remake -X -f GNUmakefile cryptlib.o 
GNU Make 3.82+dbg0.9 
Built for aarch64-unknown-linux-gnu 
Copyright (C) 2010 Free Software Foundation, Inc. 
... 
Updating goal targets.... 
    File `cryptlib.o' does not exist. 
    Must remake target `cryptlib.o'. 
Invoking recipe from GNUmakefile:449 to update target `cryptlib.o'. 
##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
g++ -DNDEBUG -g3 -o2 -pipe -c cryptlib.cpp 
##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
++ (/cryptopp-git/GNUmakefile:448) 
cryptlib.o 
remake<0> 

可以看出,我很感興趣,已經通過了的東西。 Line 449非常無趣。它只是一個標準配方,使用CXXCXXFLAGS$<

不幸的是,我真的不明白我應該怎樣去調試這個問題。根據1.1.6 Debugging Shell Commands,有一個step,但它並沒有真正告訴我如何使用它。當我試圖將其添加到命令:

remake -X step -f GNUmakefile cryptlib.o 

它導致No rule to make target 'step'

如何使用Remake調試此生成文件?或者甚至沒有它?

+0

配方本身不涉及該標誌的值。這是一個make變量。什麼是設置,這是在makefile內部的東西。你有本地的'GNUMakefile.deps'文件嗎? 'grep'是否在你的源碼目錄的任何地方找到'-g3'或'-o2'?你的環境中是否定義了「CXXFLAGS」? –

+0

我會回答,但只是因爲「翻拍不能幫助這裏」的信息。 –

回答

1

您的makefile中的配方不涉及設置該變量的值。

這是一個make變量。它通過make自己(以及makefile的make-level內容)設置爲make-parse時間。

我沒有看到鏈接GNUMakefile,說要麼-o2-g3這兩者都是在make運行編譯命令任何東西。

該makefile包含一個GNUMakefile.deps文件(如果存在)。我想這可能會有錯誤的價值。你有一個GNUMakefile.deps文件嗎?

grep在你的源代碼目錄中的任何地方找到-g3或-o2嗎? (如果還有其他一些包含makefile?)

最後一個可能從中獲取該值的地方是過程環境(因爲CXXFLAGS是使用?=運算符定義的)。

您的環境中是否有CXXFLAGS錯誤定義?