在构建最简单的示例时,我得到了"未定义的'get_driver_instance'引用":http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-examples-complete-example-1 .html.它在我的本地机器上构建并运行良好,但它不会在服务器上构建 - 似乎链接mysql库问题.
这是我的构建cmd:
g ++ -o test -Iinclude -Llib -L / usr/lib64/mysql main.cpp
我无法在服务器上运行本地构建的二进制文件,因为它是使用动态"libmysqlclient.so"构建的.我也尝试在我的本地机器上安装静态libmysqlclient.a但我在/ usr/lib/mysql目录中找不到'libmysqlclient.a'.我假设只有在服务器上运行它的方法是我可以在我的本地机器上静态构建它,或者我可以直接在服务器上编译和构建它.我试过'sudo yum install mysql-devel',但我只看到libmysqlclient.so - 找不到'libmysqlclient.a'.有没有办法在我的本地linux上安装静态mysqlclient或者我的build cmd错了?如何在服务器上构建源代码?
我正在用C ++运行一个简单的守护程序测试。它在没有sleep()的情况下运行良好,但是如果我添加sleep()函数,它将运行一次,然后保持睡眠状态。此外,第一次运行应该在logs / log.dat文件中打印一次“ Hello”,但这也不会发生。这是代码:
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <unistd.h>
using namespace std;
int main(int argc, char** argv) {
FILE *f = NULL;
if ((f = fopen("logs/log.dat ", "w")) != NULL) {
if (daemon(0, 0) >= 0) {
while (true) {
fprintf(f, "%s\n", "Hello");
sleep(5);
}
} else {
fprintf(f, "%s\n", "Error detaching terminal");
}
} else {
printf("%s\n", "Cannot open log file");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)