我想控制在CMake中找到/链接我的二进制文件的库的类型.最终目标是,"尽可能静态地"生成二进制文件,以便静态链接每个具有可用静态版本的库.这很重要,因为在测试期间可以在不同系统中实现二进制文件的可移植性.
ATM这似乎很难实现,因为FindXXX.cmake软件包,或者更确切地说,只要静态和动态都可用,find_library命令总是会获取动态库.
有关如何实现此功能的提示 - 最好以优雅的方式 - 非常受欢迎!
linker cmake shared-libraries static-linking dynamic-library
我想提取一组有关NVIDIA GPU的信息,而不需要链接到CUDA库.唯一需要的信息是计算能力和GPU的名称,这可能比这更有用但不是必需的.代码应该用C(或C++)编写.这些信息将在配置时(当CUDA工具包不可用时)和运行时(当执行的二进制文件未使用CUDA支持编译时)使用,以向用户建议系统中存在受支持的GPU.
据我所知,这可以通过驱动程序API实现,但我不太熟悉这需要的技术细节.所以我的问题是:
至少满足最低要求的具体步骤是什么(见上文);
有没有这样的开源代码?
请注意,我的第一步是为Linux提供一些代码,但最终我需要与平台无关的代码.考虑到CUDA的平台可用性,对于完整的解决方案,这将涉及适用于Linux,Mac OS和Windows的x86/AMD64代码(至少目前,该列表很快就可以通过ARM扩展).
编辑
我所说的"通过驱动程序API可以"是一个应该能够动态加载libcuda.so并通过驱动程序API查询设备属性.不过,我不确定细节.