Scons版本是2.3.3。以下是構建腳本的相關部分:如何解決CheckLib返回false?
if not conf.CheckLib('portaudio'):
raise Exception(
'Did not find libportaudio.a, portaudio.lib, or the PortAudio-v19 development header files.')
CheckLib始終返回一個錯誤值。我該如何調試?我通過Scons源代碼跟蹤它,直到它試圖構建一個小測試程序,但之後我無法進一步追蹤它。
我嘗試了所有在section 27 of the Scons manual中建議的故障診斷標誌,但沒有一個產生任何額外的輸出。例如,
C:\code\github\mixxx2>scons -Q --debug=findlibs winlib=%WINLIB_PATH% qtdir=%WINL
IB_PATH%\build\qt-everywhere-opensource-src-4.8.6 hss1394=1 mediafoundation=1 op
us=0 build=%BUILD_TYPE% machine=%TARGET_MACHINE% toolchain=msvs virtualize=0 tes
t=1 sqlitedll=0 mssdk_dir=%MSSDK_DIR% force32=1
我不知道-Q
選項的用途是什麼。我試過省略它,它沒有區別;我沒有獲得有關stdout的額外信息。就在:
[...truncated...]
Checking for C library portaudio... no
ERROR:root:Unmet dependency: Did not find libportaudio.a, portaudio.lib, or the
PortAudio-v19 development header files.
你怎麼會有庫路徑集?應找到該庫,通過您通過LIBPATH構造變量提供的庫路徑進行搜索。 – Brady 2014-10-28 06:27:05
構建腳本長達數千行。我相信LIBPATH設置正確,但我無法確定。如果我不得不猜測,我會猜測鏈接器實際上是在找到這個庫,但遇到鏈接錯誤(例如,將x86與x64連接)。我很想看看scons執行什麼命令,以及執行CheckLib時遇到的錯誤(可能是鏈接錯誤)。 – 2014-10-28 14:06:24