C++ CMake 链接错误:LNK1181:无法打开输入文件"x.lib"
C++ CMake Linking error: LNK1181: Cannot open input file "x.lib"
尽管我是C 的新事实,但我还是让这个项目将一个旧的C 库曝光至Python,我正在使用Pybind11和Cmake。C 库链接在此处的文件中,称为" alisional_old_library.lib"。这个.lib生活在服务器驱动器上。将C 代码绑定到python时,需要包含包含和链接到所需的文件。由于我没有Cmake的经验,所以我很确定我在这里做错了什么。
这是我的cmakelist.txt文件以供参考(更改文件的名称):
cmake_minimum_required(VERSION 2.8.12)
project(some_project)
add_subdirectory(pybind11)
pybind11_add_module(some_project
src/main.cpp
src/mapping.cpp
)
link_directories(Z:/folder/subfolder/lib)
TARGET_LINK_LIBRARIES(some_project PUBLIC problematic_old_library)
现在,此cmakelist.txt包含在一个名为" some_project"的文件夹中。内部文件夹" some_project"是" cmakelist.txt"和名为" src"的文件夹(上面列出的两个文件)。文件"映射"。使用名为" alising_old_library"的第三方库。但是,这会产生1个致命错误。
LINK: fatal error LNK1181: cannot open input file 'problematic_old_library.lib'
是什么原因造成的?
我试图从文档中搜索帮助。但是,我发现使用cmake时理解$ {件}符号非常困惑。我想拥有的是"硬编码"如果可能的话,最好在没有$ {某物}符号的情况下与旧库链接的示例。
////////////////////////////////////
有关下面的进一步参考,是我的cmakelist.txt文件的附录版本,其中包括所有导致此问题的路径组合的组合。文件:
make_minimum_required(VERSION 2.8.12)
project(blpbind)
add_subdirectory(pybind11)
pybind11_add_module(blpbind src/main.cpp
src/mapping.cpp
)
# Cannot open
#link_directories("Z:\blpapi_cpp\lib")
# Cannot open
#link_directories("Z://blpapi_cpp//lib")
# Cannot open
#link_directories(Z:\blpapi_cpp\lib)
# Cannot open
#link_directories(Z://blpapi_cpp//lib)
# Cannot open
#link_directories(Z:/blpapi_cpp/lib)
# Cannot open
#link_directories(Z:/ILMAPI/lib/PROD/LATEST/src/alphalib/blpbind/src/lib)
# Cannot open
#link_directories("Z:/ILMAPI/lib/PROD/LATEST/src/alphalib/blpbind/src/lib")
# Cannot open
link_directories(Z://ILMAPI//lib//PROD//LATEST//src//alphalib//blpbind//src//lib)
# Cannot open
link_directories("Z://ILMAPI//lib//PROD//LATEST//src//alphalib//blpbind//src//lib")
TARGET_LINK_LIBRARIES(blpbind PUBLIC blpapi3_32)
我尝试了所有以下所有内容,我确认我在每种情况下仍然会收到完全相同的错误。
br,谢谢
看来找不到文件时出现LNK1181错误(https://msdn.microsoft.com/en-us/library/y6b12xkc.aspx.aspx)<>
也许您的路径在其中包含空间。当您使用空间时,必须像
路径Z:/folder with space name/subfolder/lib
应该这样:
Z:/folder with space name/subfolder/lib
在另一侧,似乎您可以使用Double 与这样的文件夹使用:
"Z:\folder with space name\subfolder\lib"
尝试两者都查看结果
- 用c++从输入文件中读取另一行
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 获取通过重定向传入的输入文件的名称?
- C++ 如何打开带有另一个目录的输入文件?
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- 如何从输入文件 c++ 创建随机名称生成器
- 从输入文件修剪空格
- 链接器输入文件未使用,因为链接未完成,我无法获得.o
- 我正在尝试从输入文件中读取,然后使用它们的子字符串比较字符串的特定部分
- 我遇到使用 c++ 逐行读取输入文件的问题
- 使用重定向命令从 stdin 读入的字符串"<"输入文件未正确附加
- 使用 getline 从输入文件打印时如何忽略空白行
- 如何按升序对输入文件中的数字进行排序,并找到它们的范围和中值
- 数组大小由输入文件中的行数定义
- 从C++输入文件读取
- 在课堂上创建了一个朋友,给出"无输入文件"错误
- 通过显示一行星号来创建条形图,该条形图将读取数据的输入文件
- 利用输入文件中的数据(字符串和int)并在循环中利用
- C++ 仅读取输入文件中的部分(不是全部)数据以添加到记录中
- 如何从输入文件中读取字符并将其存储到向量中?