如何指定跨构建

时间:2017-11-06 03:45:50

标签: c++ cmake assets

这是我的文件夹结构:

├── bin                                                                                                                                                                                                                                       
├── build                                                                                                                                                                                                                                     
├── CMakeLists.txt                                                                                                                                                                                                                            
├── include                                                                                                                                                                                                                                   
│   └── project                                                                                                                                                                                                                               
│        ├── base_socket.h                                                                                                                                                                                                                                                                                                                                                                                                                                          
├── LICENSE.txt                                                                                                                                                                                                                               
├── README.md                                                                                                                                                                                                                                 
└── src                                                                                                                                                                                                                                       
    └── project                                                                                                                                                                                                                               
        ├── base_socket.cpp                                                                                                                                                                                                                   
        ├── CMakeLists.txt                                                                                                                                                                                                                    
        ├── main.cpp  
        |── assets
            ├── imageone.jpg

这适用于OpenGL项目,其中有多个着色器(文本)文件和图像。

我遇到问题,因为我在.cpp文件中使用相对路径(例如,粗略地说,`./assets/imageone.jpg

问题是我想(并且CMake确实)将构建的二进制文件放到顶级/bin目录中。当我这样做,并运行调试和发布可执行文件时,二进制路径显然已被破坏。

对此的一个解决方案是尝试将所有资源“嵌入”可执行文件中“但我不喜欢使用大型二进制文件的这种方法。

是否有一些可能的方法来存储“资产”,并使用本地路径引用它们,并让这些本地路径跨平台工作?

例如,Visual Studio在/bin/Release g++中放入二进制文件没有,因此我甚至无法使用始终与相对路径一起使用的父级“Assets”文件夹。

简而言之,我猜测如何为C ++程序制作跨平台资产引用方法。

专业人士如何做到这一点?

这是CMAKE能帮助的吗?

由于

0 个答案:

没有答案