Cmake 让我的程序同时在windows和linux上编译,我应该如何处理库?

Cmake 让我的程序同时在windows和linux上编译,我应该如何处理库?,cmake,Cmake,我正在使用CMake生成我的Make文件和VC解决方案。我的程序在linux上运行得很好。我正在使用一堆库,例如Lua。在我的linux计算机上,我只需链接到它们,并确保包含标题。所有的.so文件都在某个标准位置。在Windows上,虽然我不知道该怎么办。我是否应该将整个Lua项目包含到我自己的存储库中并链接到该存储库?我是否将Lua安装到一些标准位置,如c:\program files\lua5.1并链接到该位置?还有什么吗?你的库可以在任何地方,你只需要说-它们在哪里 在运行cmake之前,

我正在使用CMake生成我的Make文件和VC解决方案。我的程序在linux上运行得很好。我正在使用一堆库,例如Lua。在我的linux计算机上,我只需链接到它们,并确保包含标题。所有的.so文件都在某个标准位置。在Windows上,虽然我不知道该怎么办。我是否应该将整个Lua项目包含到我自己的存储库中并链接到该存储库?我是否将Lua安装到一些标准位置,如c:\program files\lua5.1并链接到该位置?还有什么吗?

你的库可以在任何地方,你只需要说-它们在哪里

在运行cmake之前,请使用一些.bat文件设置所有外部库的路径:

set LIBRARYPATH =path\to\your\library\
set include=%include%;%LIBRARYPATH%\include
set lib=%lib%;%LIBRARYPATH%\lib

启动cmd,运行this.bat,然后cmake应该找到所有

我将为ccmake提供一个用户可以或必须指定的配置字段/变量

标记_as_advanced可用于使自定义变量仅在高级模式下显示。如果你有一个标准的路径,这将是合适的(就像你在windows上所做的那样)。但是,如果需要,它仍然允许用户指定值

或者,如果您不想在advanced中使用“set”命令,也可以简单地设置一个变量

只需确保检查用户输入的值是否有效