# Objective
- Fixes compile errors on headless example when running `cargo run
--example headless --no-default-features`
```
error[E0432]: unresolved import `bevy::log`
  --> examples/app/headless.rs:13:39
   |
13 | use bevy::{app::ScheduleRunnerPlugin, log::LogPlugin, prelude::*};
   |                                       ^^^ could not find `log` in `bevy`
For more information about this error, try `rustc --explain E0432`.
error: could not compile `bevy` (example "headless") due to 1 previous error
```
## Solution
- Since commit cc69fdd bevy_log has been identified as a separate
feature, thus requiring additional parameters to build headless example.
- Changed the command to run to: `cargo run --example headless
--no-default-features --features bevy_log`
## Testing
- The new command successfully builds the example
		
	
			
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
//! This example shows how to configure the `ScheduleRunnerPlugin` to run your
 | 
						|
//! application without windowing. You can completely remove rendering / windowing
 | 
						|
//! Plugin code from bevy by making your import look like this in your Cargo.toml.
 | 
						|
//!
 | 
						|
//! ```toml
 | 
						|
//! [dependencies]
 | 
						|
//! bevy = { version = "*", default-features = false }
 | 
						|
//! # replace "*" with the most recent version of bevy
 | 
						|
//! ```
 | 
						|
//!
 | 
						|
//! And then enabling the features you need.
 | 
						|
//! See the full list: <https://docs.rs/bevy/latest/bevy/#cargo-features>
 | 
						|
use bevy::{app::ScheduleRunnerPlugin, log::LogPlugin, prelude::*};
 | 
						|
use core::time::Duration;
 | 
						|
 | 
						|
fn main() {
 | 
						|
    if cfg!(feature = "bevy_window") {
 | 
						|
        println!("This example is running with the bevy_window feature enabled and will not run headless.");
 | 
						|
        println!("Disable the default features and rerun the example to run headless.");
 | 
						|
        println!("To do so, run:");
 | 
						|
        println!();
 | 
						|
        println!("    cargo run --example headless --no-default-features --features bevy_log");
 | 
						|
        return;
 | 
						|
    }
 | 
						|
 | 
						|
    // This app runs once
 | 
						|
    App::new()
 | 
						|
        .add_plugins(DefaultPlugins.set(ScheduleRunnerPlugin::run_once()))
 | 
						|
        .add_systems(Update, hello_world_system)
 | 
						|
        .run();
 | 
						|
 | 
						|
    // This app loops forever at 60 fps
 | 
						|
    App::new()
 | 
						|
        .add_plugins(
 | 
						|
            DefaultPlugins
 | 
						|
                .set(ScheduleRunnerPlugin::run_loop(Duration::from_secs_f64(
 | 
						|
                    1.0 / 60.0,
 | 
						|
                )))
 | 
						|
                // The log and ctrl+c plugin can only be registered once globally,
 | 
						|
                // which means we need to disable it here, because it was already registered with the
 | 
						|
                // app that runs once.
 | 
						|
                .disable::<LogPlugin>(),
 | 
						|
        )
 | 
						|
        .add_systems(Update, counter)
 | 
						|
        .run();
 | 
						|
}
 | 
						|
 | 
						|
fn hello_world_system() {
 | 
						|
    println!("hello world");
 | 
						|
}
 | 
						|
 | 
						|
fn counter(mut state: Local<CounterState>) {
 | 
						|
    if state.count % 60 == 0 {
 | 
						|
        println!("{}", state.count);
 | 
						|
    }
 | 
						|
    state.count += 1;
 | 
						|
}
 | 
						|
 | 
						|
#[derive(Default)]
 | 
						|
struct CounterState {
 | 
						|
    count: u32,
 | 
						|
}
 |