我尝试在终端中使用g ++编译.cpp文件:
g++ -o main main.cpp \
-I/usr/include/glib-2.0 \
-I/usr/include/json-glib-1.0 \
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include/ \
-L/usr/lib/x86_64-linux-gnu -ljson-glib-1.0 -lglib-2.0
它有效。
但我想添加这些.so库并永久包含g ++文件,这样我就不需要每次都输入这些文件。我也想让它申请其他申请。
我正在使用ubuntu。
有人可以帮帮我吗?非常感谢你提前。
答案 0 :(得分:2)
最好,最灵活的方法是通过构建系统,使用Make或CMake或类似的东西。但是有一个严肃的学习曲线。现在可以更简单地创建一个脚本文件来运行您从命令行成功使用的相同命令。
我假设您正在使用bash shell。你可以只编辑一个文件 - 称之为“compile.bash”。在文件的第一行,输入“#!/ bin / bash”。这告诉系统将此文件解释为bash脚本文件。然后在一个或多个后续行中,键入您在问题中提供的命令,就像您之前使用它们一样。保存文件。然后从命令行运行此命令:“chmod + x compile.bash”(不带引号)。确保新文件位于您编译的目录中,您只需键入: “compile.bash”而不是之前使用的长命令行。
示例文件“compile.bash”
#!/bin/bash
g++ -o main main.cpp -I/usr/include/glib-2.0 -I/usr/include/json-glib-1.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include/ -L/usr/lib/x86_64-linux-gnu -ljson-glib-1.0 -lglib-2.0
答案 1 :(得分:2)
您需要进一步调查三件事:
LIBRARY_PATH
LIBRARY_PATH
的值是以冒号分隔的列表 目录,很像PATH
。配置为本机编译器时,GCC 在搜索特殊链接器时尝试这样指定的目录 文件,如果使用GCC_EXEC_PREFIX
找不到它们。使用GCC进行链接 在搜索普通库时也使用这些目录 -l选项(但首先使用-L指定的目录)。
ldconfig
)。而且,最重要的是:
scons
,cmake
或{实际构建它)的方法。 {1}},具体取决于您选择的系统。所以,总而言之,我对你的问题没有答案。我只能建议你研究这些。
答案 2 :(得分:2)
这是一个使用pkg-config的Makefile的一个非常基本的例子,无论如何你应该真正使用glib,这会带来很多痛苦:
CXXFLAGS += $(shell pkg-config --cflags glib-2.0) $(shell pkg-config --cflags json-glib-1.0)
LIBS += $(shell pkg-config --libs glib-2.0) $(shell pkg-config --libs json-glib-1.0)
all: main
main: main.o
$(CXX) $(CXXFLAGS) main.o -o main $(LIBS)
clean:
rm -f main main.o
可能明智地发现自己是一个gnu make教程,这样你就可以更好地理解这个例子。
现在,您可以执行' make'。而不是运行手动键入的shell命令。