无法将库与CMAKE中的测试二进制链接
Unable to link library with test binaries in cmake
我不知道如何使用Windows上的cmake将静态库与测试二进制文件链接。我在做什么错?
项目的结构就像
下面MyProject
- build
- include
- catch
- *.h
- MyProject
- *.h
- src
- *.c
- test
- *.cpp
- CMakeLists.txt
和cmakelists.txt
CMAKE_MINIMUM_REQUIRED ( VERSION 3.3.1 )
SET ( NAME_LIB "myproject" )
SET ( NAME_TEST "test_myproject" )
SET ( PATH_BUILD "${PROJECT_SOURCE_DIR}/build" )
SET ( PATH_INCLUDE "${PROJECT_SOURCE_DIR}/include" )
SET ( PATH_SOURCE "${PROJECT_SOURCE_DIR}/src" )
SET ( PATH_TEST "${PROJECT_SOURCE_DIR}/test" )
FILE ( GLOB SOURCES_LIB "${PATH_SOURCE}/*.c" "${PATH_SOURCE}/*.cpp" )
FILE ( GLOB SOURCES_TEST "${PATH_TEST}/*.c" "${PATH_TEST}/*.cpp" )
INCLUDE_DIRECTORIES ("${PATH_INCLUDE}")
ADD_LIBRARY( ${NAME_LIB} STATIC "${SOURCES_LIB}" )
ADD_EXECUTABLE ( ${NAME_TEST} "${SOURCES_TEST}" )
TARGET_LINK_LIBRARIES ( ${NAME_TEST} "${PATH_BUILD}/${NAME_LIB}" )
使用cmake创建Visual Studio项目还可以,但是当我尝试使用MSBUILD构建解决方案时,我会收到以下错误。
(Link target) ->
LINK : fatal error LNK1104: cannot open file 'myproject.obj' [D:Sourcemyprojectbuildtest_myproject.vcxproj]
指定库名而不是绝对路径时的错误。
test_myproject.obj : error LNK2019: unresolved external symbol "int __cdecl myproject_parse(char const *)" (?myproject_parse@@YAHPBD@Z
) referenced in function _main [D:Sourcemyprojectbuildtest_myproject.vcxproj]
D:SourcemyprojectbuildDebugtest_myproject.exe : fatal error LNK1120: 1 unresolved externals [D:Sourcemyprojectbuildtest_
myproject.vcxproj]
尝试通过目标名称链接您的库,也可以确保LIB的来源包含您期望的文件,另一个可能性是没有编译符号
TARGET_LINK_LIBRARIES ( ${NAME_TEST} ${NAME_LIB} )
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有根的二进制搜索树.保留与其父级的链接
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 为什么二进制搜索在我的测试中不起作用
- clang 的 libFuzzer 可以在同一二进制文件中测试超过 1 个 API 吗?
- 测试树是否为二进制搜索树
- 有没有测试比较二进制的东西?
- 所有测试用例都将小数点转换为二进制数
- 如何在 postgreSQL 中调试回归测试二进制pg_regress
- 一半填充二进制搜索树进行测试的最佳方法
- 二进制搜索测试柜不返回值
- 无法将库与CMAKE中的测试二进制链接
- 在 Google 的C++测试框架中为多个单元测试创建一个二进制文件
- 二进制搜索程序。在应用测试用例时给出正确的输出仍然显示" "超出时间限制" "错误
- cmake - 单元测试++链接单元测试二进制文件失败
- 使用带有g++和gtest的scons制作单元测试二进制文件
- 如何实现返回二进制数据的简单C函数的单元测试
- 对二进制搜索树进行单元测试
- 我可以将多个BOOST单元测试链接到一个测试二进制文件中吗