Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用cmake在编译期间替换对象文件_C++_Cmake - Fatal编程技术网

C++ 使用cmake在编译期间替换对象文件

C++ 使用cmake在编译期间替换对象文件,c++,cmake,C++,Cmake,第一个问题是: 如何在编译后但在创建静态库之前替换对象文件 现在解释一下 假设我有两个项目,它们使用相同的名称编译相同的对象文件,但其中一个对象包含了用于测试目的的附加(伪)功能: Proj_A compile -> A_OBJECT.o (fake functionality) Proj_B compile -> A_OBJECT.o (original) 在编译过程中,首先编译项目A,最后编译项目B 现在,我想将文件从Proj_A复制/替换到Proj_B,以

第一个问题是: 如何在编译后但在创建静态库之前替换对象文件

现在解释一下

假设我有两个项目,它们使用相同的名称编译相同的对象文件,但其中一个对象包含了用于测试目的的附加(伪)功能:

Proj_A
     compile -> A_OBJECT.o (fake functionality)
Proj_B
     compile -> A_OBJECT.o (original)
在编译过程中,首先编译项目A,最后编译项目B

现在,我想将文件从Proj_A复制/替换到Proj_B,以构建静态库,该库将用于测试“假”功能

我尝试使用不同的命令,如file()、configure_file()、add_custom_command(),但没有成功

感谢您在advanced中提供的任何帮助/提示

最好的,
Martin

file(),configure_file()将在配置时执行,因此不起作用。你能举一个例子说明你用add_custom_command()做了什么吗?它可能通过正确的参数ADD_自定义_命令(TARGET Proj_B PRE_LINK WORKING_DIRECTORY${CMAKE_BINARY_DIR}/Proj_A/CMakeFiles/Proj_A.DIR/source/command cp A_OBJECT.cpp.o“${CMAKE_BINARY_DIR}/Proj_B/CMakeFiles/Proj_B.DIR/source”)可以使用生成器表达式,$,并用add_库(ProjectB${SOURCES}$)声明项目B。您需要将项目A声明为对象库。