Я хочу создать библиотеку для тестирования, и для этой цели я хочу создать программу c, которая просто возвращает некоторые char*
. Я построил его на основе cmake
. это мой файл cmake:
cmake_minimum_required(VERSION 2.8)
project(smc)
add_executable(${PROJECT_NAME} "main.c" "info.cpp")
target_link_libraries(${PROJECT_NAME}
-lssh
)
set(HDRS
${NMEA_HDRS}
info.h
)
header:
#ifndef INFO_H
#define INFO_H
int sshConnection();
char* getcpuusage();
#endif // INFO_H
source:
#include "info.h"
#include <libssh/libssh.h>
#include <stdio.h>
int sshConnection()
{
ssh_session my_ssh_session = ssh_new();
const void* ip = "localhost";
if( my_ssh_session == NULL ) {
printf( "Error creating ssh session" );
return 1;
}
ssh_options_set(my_ssh_session, SSH_OPTIONS_HOST, "localhost");
ssh_options_set(my_ssh_session, SSH_OPTIONS_USER, "heydari.f");
int rc = ssh_connect(my_ssh_session);
if( rc != SSH_OK ) {
printf("Error with connecting" );
ssh_free(my_ssh_session);
return -1;
}
rc = ssh_userauth_password(my_ssh_session, NULL, "heydari@linux");
if( rc != SSH_AUTH_SUCCESS) {
printf("Error with authorization %c " , ssh_get_error(my_ssh_session) );
ssh_disconnect(my_ssh_session);
ssh_free(my_ssh_session);
return -1;
}
}
char *getcpuusage()
{
sshConnection();
char * usage = "44%";
return usage;
}
когда я использую этот файл заголовка в своем основном файле. cpp :
#include <stdio.h>
#include "info.h"
int main()
{
char* f = getcpuusage();
return 0;
}
Получил такую ошибку:
.../projects/smc/smc/main.c:-1: error: undefined reference to `getcpuusage'
я ошибаюсь, делая cmake?