前几天我编译了Boost ver。 VS2012为1.53.0。它工作正常,编译很好。现在我想在Qt Creator中使用Boost。在我已包含的.pro
文件中
INCLUDEPATH += C:\boost\boost_1_53_0\ -lboost_filesystem
LIBS += C:/boost/boost_1_53_0/stage/lib/
但是当我编译时,我得到2个错误:
:-1: error: cannot find C:/boost/boost_1_53_0/stage/lib/: Permission denied
collect2.exe:-1: error: error: ld returned 1 exit status
我该怎么办?我用Google搜索了,但似乎我是第一个出现此错误的人。
答案 0 :(得分:21)
INCLUDEPATH += C:\boost\boost_1_53_0\ -lboost_filesystem
LIBS += C:/boost/boost_1_53_0/stage/lib/
错误。
解决方案:
INCLUDEPATH += C:/boost/boost_1_53_0/
LIBS += "-LC:/boost/boost_1_53_0/stage/lib/"
Boost具有复杂的库名称(“libboost_filesystem-vc90-mt-1_53.lib”),如果是msvc,则会自动链接它们。) 如果要链接其他lib,可以这样做:
LIBS += "-LMyLibraryPath" -lmylib
MyLibraryPath是库路径,mylib是您要链接的库。
我是第一个犯这个错误。
错误最有可能发生,因为编译器尝试打开目录,就好像它是一个文件或类似的东西。
答案 1 :(得分:0)
win32 {
INCLUDEPATH += C:/Users/User/Downloads/dev/boost_1_61_0
LIBS += "-LC:/dev/Boost/lib/" \
"-Llibboost_filesystem-mgw53-mt-d-1_61.a", "-Llibboost_system-mgw53-mt-d-1_61.a", "-Llibboost_serialization-mgw53-mt-d-1_61.a" -LLIBS
}