我正在尝试使用CMake编译使用C库GStreamer的C++应用程序.
我的main.cpp文件如下所示:
extern "C" {
#include <gst/gst.h>
#include <glib.h>
}
int main(int argc, char* argv[])
{
GMainLoop *loop;
GstElement *pipeline, *source, *demuxer, *decoder, *conv, *sink;
GstBus *bus;
/* Initialisation */
gst_init (&argc, &argv);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这有效:
g++ -Wall $(pkg-config --cflags --libs gstreamer-0.10) main.cpp -o MPEG4GStreamer
Run Code Online (Sandbox Code Playgroud)
如何使用CMake制作它?我的CMakeLists.txt文件如下所示:
cmake_minimum_required (VERSION 2.6)
project (MPEG4GStreamer)
add_executable (MPEG4GStreamer main.cpp)
include(${CMAKE_ROOT}/Modules/FindPkgConfig.cmake)
# Set CMAKE_C_FLAGS variable with info from pkg-util
execute_process(COMMAND pkg-config --cflags gstreamer-0.10
OUTPUT_VARIABLE CMAKE_C_FLAGS)
string(REPLACE "\n" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
message("CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}")
# Set CMAKE_LINKER_FLAGS …Run Code Online (Sandbox Code Playgroud) 我的编译器:xlc版本10.1环境:AIX5.3链接器:ld
当我使用gcc(4.4.1)在Linux上工作时,我使用以下选项
-Wl,-rpath
Run Code Online (Sandbox Code Playgroud)
(-Wl表示链接器选项)它将一个目录添加到运行时库搜索路径中.
什么是xlc编译器的等价物?
或什么是链接器的-rpath等价物.
谢谢.
int * array = new int [size]();
Run Code Online (Sandbox Code Playgroud)
operator()允许将数组的所有值设置为0(所有位都为0).它被称为值初始化.
由于哪个版本的g ++有效?
那么其他编译器呢?
我在哪里可以找到它的标准?