小编Ber*_*san的帖子

Java GUI:关于getContentPane()方法和内容

在这段代码中:

JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)

我可以看到它生成一个新标签并将其添加到JFrame对象中frame.但我想知道做了getContentPane()什么,为什么需要它呢?

我读了这个API,但我仍然不明白.

java swing jframe

15
推荐指数
3
解决办法
8万
查看次数

CMAKE 如何告诉 makefile 链接库?

我有一个简单的可执行文件,它使用位于的mylib库中的函数~/mylib/lib/libmylib.so

在 上CMakeLists.txt,我告诉 CMAKE 在哪里可以找到该库并链接它:

find_library(MYLIB_PATH mylib HINT $ENV{HOME}/mylib/lib)
target_link_libraries (output "${MYLIB_PATH}")
Run Code Online (Sandbox Code Playgroud)

执行完后生成Makefile,调用cd build; cmake ..编译成功make


但假设我评论了第二行CMakeLists.txt,如

find_library(MYLIB_PATH mylib HINT $ENV{HOME}/mylib/lib)
# target_link_libraries (output "${MYLIB_PATH}")
Run Code Online (Sandbox Code Playgroud)

并执行相同的操作cd build; cmake ..我得到完全相同的 Makefile,但是由于make这些类型的错误而失败:

In function `Model::Model(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
Model.cpp:(.text+0x21): undefined reference to `TF_NewStatus'
Run Code Online (Sandbox Code Playgroud)

由于库未链接而失败是有道理的。但如果两个Makefile相同,为什么一个会make失败而另一个不会呢?

c++ linux makefile cmake

3
推荐指数
1
解决办法
1776
查看次数

标签 统计

c++ ×1

cmake ×1

java ×1

jframe ×1

linux ×1

makefile ×1

swing ×1