qt编译出错 环境变量添加过了,可还是出错,好像是库的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt编译出错 环境变量添加过了,可还是出错,好像是库的问题相关的知识,希望对你有一定的参考价值。
出现如下错误信息:
think@ubuntu:~/桌面/qt-book/chap01/hello$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o hello.o hello.cpp
hello.cpp:1:24: error: QApplication: 没有那个文件或目录
hello.cpp:2:18: error: QLabel: 没有那个文件或目录
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:6: error: ‘QApplication’ was not declared in this scope
hello.cpp:6: error: expected ‘;’ before ‘app’
hello.cpp:7: error: ‘QLabel’ was not declared in this scope
hello.cpp:7: error: ‘label’ was not declared in this scope
hello.cpp:7: error: expected type-specifier before ‘QLabel’
hello.cpp:7: error: expected ‘;’ before ‘QLabel’
hello.cpp:9: error: ‘app’ was not declared in this scope
hello.cpp: At global scope:
hello.cpp:4: warning: unused parameter ‘argc’
hello.cpp:4: warning: unused parameter ‘argv’
make: *** [hello.o] 错误 1
1.进入源文件的目录
2.qmake -project
3.qmake
4.make
注意你的qmake一定是系统可以找到的程序。如果环境变量没有添加,或者你希望手动选择使用的qmake,可以直接在你安装qt目录的/bin/qmake 来代替qmake
希望解决你的问题,如果还有问题,请追问。 参考技术A 既然你是用Ubuntu,你可以使用Ubuntu中文论坛里面的
“http://wiki.ubuntu.org.cn/index.php?title=Qt&variant=zh-cn”
这里有一套教你如何配置qt的开发环境(图形界面)。
《QT4图形设计与嵌入式开发》这本书很适合初学者学习。 参考技术B 错了的话,可以把杀毒杀一下就行了! 参考技术C 最好不要有中文路径。
将环境变量添加到 NodeJS Elastic Beanstalk 时出错
【中文标题】将环境变量添加到 NodeJS Elastic Beanstalk 时出错【英文标题】:Errors adding Environment Variables to NodeJS Elastic Beanstalk 【发布时间】:2018-07-29 00:16:54 【问题描述】:我的配置一直运行到昨天。我添加了nginx NodeJS https redirect extension from AWS。现在,当我尝试通过 Elastic Beanstalk 配置添加新环境变量时,我收到此错误:
[Instance: i-0364b59cca36774a0] Command failed on instance. Return code: 137 Output: + rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf + service nginx stop Stopping nginx: /sbin/service: line 66: 27395 Killed env -i PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" $OPTIONS. Hook /opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
当我查看 eb-activity.log 时,我看到了这个错误:
[2018-02-18T17:24:58.762Z] INFO [13848] - [Configuration update 1.0.61@112/ConfigDeployStage1/ConfigDeployPostHook/99_kill_default_nginx.sh] : Starting activity...
[2018-02-18T17:24:58.939Z] INFO [13848] - [Configuration update 1.0.61@112/ConfigDeployStage1/ConfigDeployPostHook/99_kill_default_nginx.sh] : Activity execution failed, because: + rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
+ service nginx stop
Stopping nginx: /sbin/service: line 66: 14258 Killed env -i PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" $OPTIONS (ElasticBeanstalk::ExternalInvocationError)
caused by: + rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
+ service nginx stop
Stopping nginx: /sbin/service: line 66: 14258 Killed env -i PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" $OPTIONS (Executor::NonZeroExitStatus)
我做错了什么?最近发生了什么变化,因为几个月前我更改了环境变量时效果很好。
【问题讨论】:
你最后解决了这个问题吗?我面临类似的事情,我只是使用文档中指定的配置 不。我可以解决它的唯一方法是在没有 00_elastic_beanstalk_proxy.conf 的情况下推送新负载,重建环境,更改变量,然后将所有内容(00_elastic_beanstalk_proxy.conf)放回去。 【参考方案1】:在我看来,事件的顺序是这样的:
-
创建部署后挂钩以删除
/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
运行容器命令删除/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
运行部署后挂钩,它会尝试删除/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
因此,部署后脚本失败,因为您尝试删除的文件可能不存在,这对我来说似乎并不奇怪。
我会尝试以下两种方法之一:
-
将临时 conf 文件的删除从容器命令移至
99_kill_default_nginx.sh
脚本,然后删除整个容器命令部分。
从99_kill_default_nginx.sh
脚本中删除rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
行。
【讨论】:
嗯。我都尝试了,但仍然失败。上传新代码后,任何配置(包括原始配置)和一切都很好。但是,如果我对配置进行任何更改,更改将失败并返回到以前的配置。【参考方案2】:我也遇到了这个问题,亚马逊在文档中承认了这个错误。这是一个可以在 .ebextensions 配置文件中使用的有效重启脚本。
/opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh:
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash -xe
rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
status=`/sbin/status nginx`
if [[ $status = *"start/running"* ]]; then
echo "stopping nginx..."
stop nginx
echo "starting nginx..."
start nginx
else
echo "nginx is not running... starting it..."
start nginx
fi
【讨论】:
【参考方案3】:service nginx stop
退出,状态为 137(已杀死)。
您的脚本开头为:#!/bin/bash -xe
参数-e
使脚本在以非零状态退出时立即退出。
如果要继续执行,需要捕获退出状态(137)。
/opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh:
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash -xe
rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
status=`/sbin/status nginx`
if [[ $status = *"start/running"* ]]; then
set +e
service nginx stop
exitStatus = $?
if [ $exitStatus -ne 0 ] && [ $exitStatus -ne 137 ]
then
exit $exitStatus
fi
set -e
fi
service nginx start
【讨论】:
【参考方案4】:/sbin/status nginx
似乎不再工作了。我更新了脚本以使用service nginx status
:
/opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh:
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash -xe
rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
status=$(service nginx status)
if [[ "$status" =~ "running" ]]; then
echo "stopping nginx..."
stop nginx
echo "starting nginx..."
start nginx
else
echo "nginx is not running... starting it..."
start nginx
fi
亚马逊文档中的错误脚本仍然存在……我想知道他们什么时候会修复它。时间已经够了
【讨论】:
以上是关于qt编译出错 环境变量添加过了,可还是出错,好像是库的问题的主要内容,如果未能解决你的问题,请参考以下文章
Qt添加QWebEngine模块后打包在无Qt的环境上运行出错的问题