How to use LookAt in C++?

At the moment I have a modified version of the intervall walking sample for Panda3D, where the panda is walking a triangle.
So now I have a additional smiley which should look at that panda.

#include "pandaFramework.h"
#include "pandaSystem.h"
 
#include "genericAsyncTask.h"
#include "asyncTaskManager.h"
 
#include "cIntervalManager.h"
#include "cLerpNodePathInterval.h"
#include "cMetaInterval.h"
 
PandaFramework framework;
 
int main(int argc, char *argv[]) {
    //load the window and stuff
  framework.open_framework(argc, argv);
  framework.set_window_title("My Panda3D Window");
  WindowFramework *window = framework.open_window();
  
 

    //load the environment model
  NodePath environ = window->load_model(framework.get_models(),"models/environment");
  environ.reparent_to(window->get_render());
  environ.set_scale(0.25,0.25,0.25);
  environ.set_pos(-8,42,0);
  
// Load our panda
  NodePath pandaActor = window->load_model(framework.get_models(), "panda-model");
  pandaActor.set_scale(0.005);
  pandaActor.reparent_to(window->get_render());
 
[b]// Load Smiley
   NodePath smiley = window->load_model(framework.get_models(), "models/smiley");
   smiley.set_scale(1.000);
   smiley.set_pos(0,0,3);
   smiley.reparent_to(window->get_render());
   smiley.lookAt( pandaActor );[/b]



  // Load the walk animation
  window->load_model(pandaActor, "panda-walk4");
  window->loop_animations(0);



// Create the lerp intervals needed to walk back and forth
  PT(CLerpNodePathInterval) pandaPosInterval1, pandaPosInterval2, pandaPosInterval3, pandaPosInterval4, pandaHprInterval1, pandaHprInterval2, pandaHprInterval3, pandaHprInterval4;
  pandaPosInterval1 = new CLerpNodePathInterval("pandaPosInterval1", 0.1, CLerpInterval::BT_no_blend,
                                                      true, false, pandaActor, window->get_render());
  pandaPosInterval1->set_start_pos(LPoint3f(0, 10, 0));
  pandaPosInterval1->set_end_pos(LPoint3f(0, -10, 0));
 
  pandaPosInterval2 = new CLerpNodePathInterval("pandaPosInterval2", 0.1, CLerpInterval::BT_no_blend,
                                                      true, false, pandaActor, window->get_render());
  pandaPosInterval2->set_start_pos(LPoint3f(0, -10, 0));
  pandaPosInterval2->set_end_pos(LPoint3f(-10, 0, 0));
 
  pandaPosInterval3 = new CLerpNodePathInterval("pandaPosInterval3", 0.1, CLerpInterval::BT_no_blend,
                                                      true, false, pandaActor, window->get_render());
  pandaPosInterval3->set_start_pos(LPoint3f(-10, 0, 0));
  pandaPosInterval3->set_end_pos(LPoint3f(0, 10, 0));

  pandaHprInterval1 = new CLerpNodePathInterval("pandaHprInterval1", 0.1, CLerpInterval::BT_no_blend,
                                                      true, false, pandaActor, window->get_render());
  pandaHprInterval1->set_start_hpr(LPoint3f(0, 0, 0));
  pandaHprInterval1->set_end_hpr(LPoint3f(-130, 0, 0));
 
  pandaHprInterval2 = new CLerpNodePathInterval("pandaHprInterval2", 0.1, CLerpInterval::BT_no_blend,
                                                      true, false, pandaActor, window->get_render());
  pandaHprInterval2->set_start_hpr(LPoint3f(-130, 0, 0));
  pandaHprInterval2->set_end_hpr(LPoint3f(-220, 0, 0));

  pandaHprInterval3 = new CLerpNodePathInterval("pandaHprInterval2", 0.1, CLerpInterval::BT_no_blend,
                                                      true, false, pandaActor, window->get_render());
  pandaHprInterval3->set_start_hpr(LPoint3f(-220, 0, 0));
  pandaHprInterval3->set_end_hpr(LPoint3f(-360, 0, 0));
 


  // Create and play the sequence that coordinates the intervals
  PT(CMetaInterval) pandaPace;
  pandaPace = new CMetaInterval("pandaPace");
  pandaPace->add_c_interval(pandaPosInterval1, 0, CMetaInterval::RS_previous_end);
  pandaPace->add_c_interval(pandaHprInterval1, 0, CMetaInterval::RS_previous_end);
  pandaPace->add_c_interval(pandaPosInterval2, 0, CMetaInterval::RS_previous_end);
  pandaPace->add_c_interval(pandaHprInterval2, 0, CMetaInterval::RS_previous_end);
  pandaPace->add_c_interval(pandaPosInterval3, 0, CMetaInterval::RS_previous_end);
  pandaPace->add_c_interval(pandaHprInterval3, 0, CMetaInterval::RS_previous_end);
  pandaPace->loop();

  window->setup_trackball();

   // This is a simpler way to do stuff every frame, if you're too lazy to create a task.
  Thread *current_thread = Thread::get_current_thread();
  while(framework.do_frame(current_thread)) 
  {
    // Step the interval manager
    CIntervalManager::get_global_ptr()->step();
  }

  
    //do the rest
  framework.main_loop();
  framework.close_framework();
  return (0);
}

so now he says

1>.\main.cpp(38) : error C2039: 'lookAt': is no element of 'NodePath'

sorry, that I’m so silly. searching forum and google didn’t helped me

In Panda’s C++ side, the naming is different. lookAt becomes look_at. So use look_at instead.