Visual Studio "fatal error LNK1104: cannot open file"未使用或包含的库
Visual Studio "fatal error LNK1104: cannot open file" on a library that is not used or include
我有UnitTest
项目,而不是使用我自己的NeuralNetwork
库项目,该项目使用我自己的Boost
项目(我用Boost.vcxproj
重建 boost(,UnitTest
不使用 Boost。那么,为什么我的UnitTest
项目尝试链接libboost_serialization-vc142-mt-x64-1_71.lib
?
我检查,除了包含 .hpp 文件的文件夹外,我的UnitTests.vcxproj
中没有提升引用。 我的Boost
项目和NeuralNetwork
项目构建没有任何错误,并正确处理了Boost.lib和NeuralNetwork.lib。
错误信息
1>------ Rebuild All started: Project: UnitTests, Configuration: Debug x64 ------
1>Building Custom Rule C:/Programming/Github/NeuralNetwork/tests/unit_tests/CMakeLists.txt
1>cl : command line warning D9002: ignoring unknown option '-g'
1>ExamplesTest.cpp
1>SaveNeuralNetworkTest.cpp
1>UnitTestTests.cpp
1>main.cpp
1>Generating Code...
1>LINK : fatal error LNK1104: cannot open file 'libboost_serialization-vc142-mt-x64-1_71.lib'
1>Done building project "UnitTests.vcxproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
全球CMakeList.txt
project(NeuralNetwork CXX)
set(CMAKE_CXX_STANDARD 17)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
set(CMAKE_CXX_FLAGS_DEBUG "-g")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
add_subdirectory(src)
add_subdirectory(tests)
神经网络CMakeLists.txt
file(GLOB SOURCES
"*.hpp"
"*.cpp"
)
include_directories(external_library/boost_1_71_0_minimal)
add_subdirectory(external_library/boost_1_71_0_minimal/libs/serialization)
add_library(NeuralNetwork ${SOURCES})
target_link_libraries(NeuralNetwork Boost)
测试CMakeList.txt
file(GLOB SOURCES
"*.hpp"
"*.cpp"
)
add_subdirectory(googletest-release-1.10.0)
include_directories(../src src)
include_directories(../src/external_library/boost_1_71_0_minimal)
add_library(GTestExtended ${SOURCES})
target_link_libraries(GTestExtended gtest)
add_subdirectory(unit_tests)
add_subdirectory(dataset_tests)
我添加了一个命令来忽略主CMakeLists.txt
的库,它工作得很好。
添加到CMakeList 的代码.txt
if(MSVC)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /NODEFAULTLIB:"libboost_serialization-vc142-mt-x64-1_71.lib"")
endif()
相关文章:
- 普通环路未使用gcc 4.8.5自动矢量化
- 在更改for循环的第三部分后,未使用for循环结果
- 使用typeid警告未使用的变量
- C++删除未使用的类属性会导致 std::logic_error
- 警告 C4552:">>":未使用表达式的结果
- (SFML)按下键时,播放器构造函数未使用正确的动画进行更新
- 为什么我会收到警告,指出函数已使用但未定义,以及已定义但未使用?
- 如果我想链接静态库并删除未使用的符号.txt我应该如何处理 Cmakelist
- 可视化C++载体:未使用的容量
- 如何在从文件中读取整数时使用 file.eof()?
- GCC 中 __attribute__((未使用)) 和 __attribute((未使用)) 之间的区别
- 循环访问还包含未使用元素的字符串数组
- Q维德格特关闭事件(..)未使用 QProcess::terminate() 调用
- Visual Studio "fatal error LNK1104: cannot open file"未使用或包含的库
- G++ 编译器是否在未使用返回值的情况下将 constexpr 函数视为常规函数?
- 链接器输入文件未使用,因为链接未完成,我无法获得.o
- 未使用的C++未优化的静态成员函数/变量
- 仅当一个参数中未使用 std::function 时,模板函数替换才有效
- 如何控制或优化或删除或释放 UNION 中未使用的内存
- 未使用的 asm() 在不受支持的体系结构上的行为