最近我一直在研究 SDL 库,并想开始将 libsdl2-image-2.0-0 与 SDL 一起使用。我一直在尝试让它在 Ubuntu 15.04 上运行。我已经使用安装了该包
sudo apt-get install libsdl2-image-2.0-0
Run Code Online (Sandbox Code Playgroud)
安装似乎完全正常,但是当我尝试将图像库包含在我的 C++ 代码中时
#include <SDL2/SDL_image.h>
Run Code Online (Sandbox Code Playgroud)
我收到错误“致命错误:SDL2/SDL_image.h:没有这样的文件或目录”我去查看了 SDL2 基础库所在的位置 /usr/local/include/SDL2 ,正如错误消息所示 SDL_image.h 是不在那里。然后我试图找出图书馆在哪里使用
apt-file search SDL_image.h
Run Code Online (Sandbox Code Playgroud)
当我这样做时
libsdl-image1.2-dev: /usr/include/SDL/SDL_image.h
libsdl2-image-dev: /usr/include/SDL2/SDL_image.h
Run Code Online (Sandbox Code Playgroud)
两者都显示为结果。这对我来说很奇怪,因为我没有安装 libsdl2-image-dev。另外,当我尝试查看 /usr/include/SDL2/ 时,该文件夹甚至似乎不存在,这只会增加我的困惑。
然后我尝试删除 libsdl2-image-dev 这样我就可以安装 libsdl2-image-2.0-0 但是当我运行命令时
sudo apt-get remove libsdl2-image-dev
Run Code Online (Sandbox Code Playgroud)
我明白了
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package 'libsdl2-image-dev' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.
Run Code Online (Sandbox Code Playgroud)
当我尝试运行命令时 …
我有一些关于在文件夹中编译 .cpp 的问题,它说
first.cpp 没有那个文件或目录
但是当我在家里运行它时,它会编译。我可能遗漏了任何设置?谢谢。
这是终端输出(查看大图):

law@ubuntu:~$ ls
android-sdk Downloads Pictures test wallpapers
android-sdks eclipse Public tomcat workspace
Desktop examples.desktop sourcecodescpp Ubuntu One
Documents Music Templates Videos
law@ubuntu:~$ dir sourcecodescpp
first.cpp
law@ubuntu:~$ g++ first.cpp
g++: error: first.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated.
law@ubuntu:~$ ./a/out
bash: ./a/out: No such file or directory
law@ubuntu:~$ ls
android-sdk Downloads Pictures test wallpapers
android-sdks eclipse Public tomcat workspace
Desktop examples.desktop sourcecodescpp Ubuntu One
Documents …Run Code Online (Sandbox Code Playgroud) 如果我尝试通过以下命令编译我的 C++ 源文件:
g++ a.cpp
Run Code Online (Sandbox Code Playgroud)
它输出:
The program 'g++' can be found in the following packages:
* g++
* pentium builder
try:
sudo apt-get intsall <<a>selected package>
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行建议的命令 ( sudo apt-get install g++),它会显示一切都已安装。
那么,基本上,我如何在 Ubuntu 12.04 中编译一个简单的 C++ 程序?
我是一名 Java 开发人员。我对 C++ 了解不多。我应该学习 C++ 来开发 Ubuntu 应用程序吗?
当我sudo dpkg-reconfigure lightdm在终端中执行时,我看到一个类似窗口的简单列表菜单。有没有办法在 C++ 中制作类似的东西?
这看起来像:

我尝试从clang 的 libtooling 教程(“组合在一起”部分)编译代码。编译作品:
g++ `llvm-config-3.5 --cxxflags` -fno-rtti -c test.cpp -o test.o
Run Code Online (Sandbox Code Playgroud)
我从 clang 得到了未定义的引用,所以我什至尝试链接到所有的 clang 库:
CLANG_LIBS="$(ls /usr/lib/llvm-3.5/lib/libclang* | sed -e 's/.*lib/-l/g' -e 's/\.a//g' -e 's/\.so.*//g' | tr '\n' ' ' )"
g++ `llvm-config-3.5 --ldflags --libs` $CLANG_LIBS test.o -o test
Run Code Online (Sandbox Code Playgroud)
我得到 ~ 15 个未定义的引用:
test.o: In function `ASTFrontendAction':
/usr/lib/llvm-3.5/include/clang/Frontend/FrontendAction.h:215: undefined reference to `clang::FrontendAction::FrontendAction()'
test.o: In function `SyntaxOnlyAction':
/usr/lib/llvm-3.5/include/clang/Frontend/FrontendActions.h:129: undefined reference to `vtable for clang::SyntaxOnlyAction'
test.o: In function `std::unique_ptr<clang::tooling::FrontendActionFactory, std::default_delete<clang::tooling::FrontendActionFactory> > clang::tooling::newFrontendActionFactory<clang::SyntaxOnlyAction>()::SimpleFrontendActionFactory::~SimpleFrontendActionFactory()':
/usr/lib/llvm-3.5/include/clang/Tooling/Tooling.h:309: undefined reference to `clang::tooling::FrontendActionFactory::~FrontendActionFactory()'
test.o: …Run Code Online (Sandbox Code Playgroud) 我正在按照安装指南https://cmusatyalab.github.io/openface/setup/进行操作。我做了:
mkdir -p ~/src
cd ~/src
tar xf dlib-19.1.0.tar.gz
cd dlib-19.1.0/python_examples
mkdir build
cd build
cmake ../../tools/python
cmake --build . --config Release
sudo cp dlib.so /usr/local/lib/python3.4/dist-packages/
Run Code Online (Sandbox Code Playgroud)
它说此时我应该能够运行import dlib,但是如果我从 virtualenv 运行它会给我
ImportError: No module named dlib
Run Code Online (Sandbox Code Playgroud)
如果我从 virtualenv 外部运行它,它会给出:
ImportError: dynamic module does not define init function (PyInit_dlib)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何为python安装dlib?
UPD:我为 Python2 尝试过同样的方法:
sudo cp dlib.so /usr/local/lib/python2.7/dist-packages/
Run Code Online (Sandbox Code Playgroud)
它适用于python2。那么如何对python3做同样的事情呢?
我尝试在 Ubuntu 中编译 C++。我在 Gedit 中编写代码,这是一个简单的 hello world 项目。我去终端运行它gcc helloworld.cc并弹出此消息:
/tmp/ccy83619.o: In function `main':
helloworld.cc:(.text+0xa): undefined reference to `std::cout'
helloworld.cc:(.text+0xf): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccy83619.o: In function `__static_initialization_and_destruction_0(int, int)':
helloworld.cc:(.text+0x3d): undefined reference to `std::ios_base::Init::Init()'
helloworld.cc:(.text+0x4c): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
这是什么意思,我该往哪里去?
Ubuntu 当前提供 gcc 7.3 版,但当前提供 gcc 8.1 版。我想将 gcc 8.1 与 gcc 7.3 一起安装(这样,如果我调用 c++,它会调用 gcc 7.3 的版本,如果我调用 c++-8,它会调用 8.1 的版本)。
我尝试按照此问题中概述的说明进行操作(但将 4.9 替换为 8.1),但 gcc 8.1 不在问题中列出的存储库中:
$ sudo apt-get install gcc-8.1
[sudo] password for sky:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package gcc-8.1
E: Couldn't find any package by glob 'gcc-8.1'
E: Couldn't find any package by regex 'gcc-8.1'
Run Code Online (Sandbox Code Playgroud)
如何在 ubuntu 18.04 中安装 gcc 8.1?
编辑:这个问题不是重复的,因为 …
我已经构建了一个 github 包有一段时间了……一个新版本出来了,我构建了它。它使用我的 ubuntu 上默认的 clang6,ubuntu 18.04
现在,它无法编译,找不到标准的包含。在股票上,全新的 ubuntu 18.04 可以正常工作。所以我做了一些坏事。我正在使用基于 ubutntu hwe(所以 5.3)的自定义内核。我正在应用一个小补丁来恢复 intel i915 省电。
我可以简化问题:
$ more test.cc
#include <vector>
Run Code Online (Sandbox Code Playgroud)
当我这样做时它有效:
clang -c test.cc -v -stdlib=libc++
Run Code Online (Sandbox Code Playgroud)
此外,在 18.04.4 的股票上,它在我 apt 安装 clang 后工作。
但是在我的笔记本电脑上,它失败了:
clang -c test.cc -v
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/9
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7
Found candidate GCC …Run Code Online (Sandbox Code Playgroud)