target_include_directories 语法?

问题描述 投票:0回答:1
    Program3
    ├── CMakeLists.txt
    ├── CMakePresets.json
    ├── CPPs
        ├── Program3.cpp // this is example code i'm trying to run
        ├── Program3.txt // this is the premade .cpp file that came with the cmake template
    ├── Hs
        ├── Program3.h //this is the premade .h file that came with the cmake template
    ├── out

我在 Visual Studio 中使用 C++ 的 CMAKE 模板,并希望运行 SFML 示例代码。为了运行代码,我需要包含 .hpp 文件。我不想复制包含文件并将它们直接粘贴到我的项目中,并且希望仅引用其自己目录中的库。

这是我正在遵循的教程,但略有修改https://www.youtube.com/watch?v=c35L674qzIE

我不确定语法,但我认为我应该使用 target_include_directories 或 include_directories 让程序在 SFML 文件夹中搜索所需的文件。

如果无法从项目外部引用文件,我可能会弄错,只需按照建议将文件复制到项目中即可。

错误是 严重性代码 说明 项目文件行抑制状态详细信息 错误 C1083 无法打开包含文件:“SFML/Graphics.hpp”:没有此类文件或目录 C:\Users\saled\OneDrive\Desktop\GameDev\StrategieLLC stAttempt\Program3\out uild\x64-debug\Program3 C: \Users\saled\OneDrive\Desktop\GameDev\StrategieLLC stAttempt\Program3\CPPs\Program3.cpp 1

    target_include_directories({CMAKE_SOURCE_DIR} ../DevLibrariesUsed/SFML-2.6.1-windows-vc17-64-bit/SFML-2.6.1/include/SFML) 

.. 引用项目和库文件夹 DevLibariesUsed 之间的公共文件夹。

我也尝试过

    target_include_directories(Program3 ../DevLibrariesUsed/SFML-2.6.1-windows-vc17-64-bit/SFML-2.6.1/include/SFML)

    include_directories(Program3 ../DevLibrariesUsed/SFML-2.6.1-windows-vc17-64-bit/SFML-2.6.1/include/SFML)

但是我可能会尝试仅链接每个 .hpp 文件,但是库的该部分中有更多文件夹,我不想在某些时候直接添加所有内容。

这个

    target_link_libraries(Program3 ../DevLibrariesUsed/SFML-2.6.1-windows-vc17-64-bit/SFML-2.6.1/lib/sfml-window.lib)

似乎适用于 .lib 文件?所以我不知道为什么类似的语法不适用于 include_directories

c++ cmake sfml
1个回答
0
投票

如果您希望实现蒙特卡罗模拟,它可以应用于各种环境,例如金融、物理和风险分析等。核心概念涉及使用随机性来解决原则上可能是确定性的问题。以下是 Python 中蒙特卡洛模拟的基本示例,用于估计 π 的值:

import random

def estimate_pi(num_samples):
    inside_circle = 0
    for _ in range(num_samples):
        x, y = random.random(), random.random()
        distance = x**2 + y**2
        if distance <= 1:
            inside_circle += 1
    pi_estimate = 4 * inside_circle / num_samples
    return pi_estimate

# Example usage
num_samples = 1000000
pi_estimate = estimate_pi(num_samples)
print(f"Estimated Pi: {pi_estimate}")

此代码对单位正方形 (0,0) 到 (1,1) 中的随机点进行采样,并检查该点是否位于该正方形内的单位圆四分之一内。圆内点与总点的比率乘以 4(因为我们只查看圆的四分之一)给出了 π 的估计值。

如何运作:

  • (x, y)
    坐标表示单位正方形内随机选择的点。
  • distance = x**2 + y**2
    使用勾股定理计算点到原点
    (0,0)
    的距离。如果该距离小于或等于 1,则该点位于单位圆内。
  • inside_circle
    计算有多少个点落在圆内。
  • 比率
    inside_circle / num_samples
    估计四分之一圆的面积。将此比率乘以 4 即可估算出 π,因为圆的实际面积为 πr²(r = 1),而正方形的面积为 1² = 1。

这个例子是蒙特卡罗方法的简单演示。 π 估计的准确性随着样本数量的增加而提高。蒙特卡洛模拟可能更加复杂,可用于各种应用,从金融模型到难以或不可能获得分析解决方案的复杂物理模拟。

© www.soinside.com 2019 - 2024. All rights reserved.