CMake链接另一个项目中的单个类 这是我的第一个C++项目之一,我在CGuff.< /P>中遇到了一些问题。

CMake链接另一个项目中的单个类 这是我的第一个C++项目之一,我在CGuff.< /P>中遇到了一些问题。,c++,cmake,shared-libraries,static-libraries,C++,Cmake,Shared Libraries,Static Libraries,我有一个可执行的项目,我有一个带有boost单元测试的项目。 我用下面的方法试过,但失败了。显然,我不能用这种方式有两个可执行文件,我不知道如何修复它 这是我的项目的关键 project (MyProject) find_package( Boost 1.48.0 COMPONENTS thread ) set(MYPROJECT_SRCS main.cpp foo.h foo.cpp) add_executable(MyProject ${MYPROJECT_SRCS}) target_li

我有一个可执行的项目,我有一个带有boost单元测试的项目。 我用下面的方法试过,但失败了。显然,我不能用这种方式有两个可执行文件,我不知道如何修复它

这是我的项目的关键

project (MyProject)
find_package( Boost 1.48.0  COMPONENTS thread )
set(MYPROJECT_SRCS main.cpp foo.h foo.cpp)
add_executable(MyProject ${MYPROJECT_SRCS})
target_link_libraries(MyProject  ${Boost_LIBRARIES})
这是一系列测试

project (tests)
find_package( Boost 1.48.0 COMPONENTS thread unit_test_framework) 
find_package( Boost 1.48.0  COMPONENTS thread )
include_directories("../MyProject")
set(TEST_SRCS test.cpp )
add_executable(tests ${TEST_SRCS})
target_link_libraries(tests ${Boost_LIBRARIES} MyProject)
add_test( example_test tests )
CMake错误在tests/CMakeLists.txt:13(目标链接库):
可执行文件类型的目标“MyProject”不能链接到另一个
目标。可以只链接到静态库或共享库,也可以链接到 设置了ENABLE_EXPORTS属性的可执行文件


我试图“启用\u导出属性集”,但我认为我做得不对。

您不应该将可执行文件与测试链接,而是需要在测试源列表中包含主项目的源文件:

set(TEST\u SRCS TEST.cpp../MyProject/foo.cpp)

target\u link\u库(tests${Boost\u库})


另外,当你想分析测试覆盖率时,它也会很有用。

你能给我一个简单的例子吗。我对CMake真的很陌生!在你的测试中,把我的答案改成两行。请为你的问题设置更合适的标题。