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