如何在不同位置的 VS 中使用基于 cmakelitsts 的项目?

问题描述

我使用带有此 cmakelists.txt 的 CMake 构建创建了一个 VS 项目

文件夹结构

file_build/source/cmakelists.txt
file_build/source/dds/idlpp-cxx
file_build/source/dds/CycloneDDS
file_build/source/dds/CycloneDDS-cxx
file_build/myproject/myproject.sln

cmakelists.txt

project(myproject LANGUAGES C CXX)
cmake_minimum_required(VERSION 3.5)

find_package(Idlpp-cxx PATHS ${CMAKE_CURRENT_SOURCE_DIR}/dds/idlpp-cxx)

find_package(CycloneDDS PATHS ${CMAKE_CURRENT_SOURCE_DIR}/dds/CycloneDDS)

find_package(CycloneDDS-CXX PATHS ${CMAKE_CURRENT_SOURCE_DIR}/dds/CycloneDDS-CXX)

idl_ddscxx_generate(myproject_lib "myproject.idl")

add_library(myproject SHARED myproject.h myproject.cpp)  

target_link_libraries(myproject myproject_lib CycloneDDS-CXX::ddscxx)  

set_property(TARGET myproject PROPERTY CXX_STANDARD 11)  

我可以在 VS 2017 中构建使用上述 cmakelists.txt 创建的 VS 解决方

但是当我在构建 sln 项目时更改了硬盘中 file_build 的位置时,它会在系统中查找绝对路径。这是在初始 cmakelists 构建期间设置的

如何让它使用相对路径。如何在cmakelists.txt中设置使用相关路径?

因为file_build文件要在不同的PC上使用/打开和开发构建。我需要避免在创建的 Visual Studio 解决方案中使用绝对路径

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...